diff --git a/README b/README
--- a/README
+++ b/README
@@ -1,10 +1,9 @@
-$Id: README,v 1.25 2006/11/15 18:29:08 hxml Exp $
-
 The Haskell XML Toolbox is a collection of tools for processing XML with
 Haskell.
 
 The Haskell XML Toolbox is available from:
     http://www.fh-wedel.de/~si/HXmlToolbox/
+or from hackage.haskell.org
 
 Detailed information about the features, changes, requirements, installation and documentation
 is available from that web page.
@@ -14,6 +13,8 @@
 It requires the "hxt" package to be installed.
 For new projects we strongly recomend the
 library based on arrows (package "hxt").
+
+Installation can be done with cabal in the usual way.
 
 Good luck,
 
diff --git a/Version.mk b/Version.mk
--- a/Version.mk
+++ b/Version.mk
@@ -2,6 +2,6 @@
 # Version numbering for HXT filter package
 
 SOFTWARE	= hxt-filter
-VERSION		= 8.2.0
-LASTVERSION	= 8.1.0
+VERSION		= 8.3.0
+LASTVERSION	= 8.2.0
 DIST_NAME	= $(SOFTWARE)-$(VERSION)
diff --git a/doc/hxt-filter/Control-Monad-MonadStateIO.html b/doc/hxt-filter/Control-Monad-MonadStateIO.html
--- a/doc/hxt-filter/Control-Monad-MonadStateIO.html
+++ b/doc/hxt-filter/Control-Monad-MonadStateIO.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Control-Monad-MonadStateIO.html"
 >Source code</A
diff --git a/doc/hxt-filter/Data-Tree-NTree-Filter.html b/doc/hxt-filter/Data-Tree-NTree-Filter.html
new file mode 100644
--- /dev/null
+++ b/doc/hxt-filter/Data-Tree-NTree-Filter.html
@@ -0,0 +1,3754 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Data.Tree.NTree.Filter</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+><TD CLASS="topbut"
+><A HREF="src/Data-Tree-NTree-Filter.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Data.Tree.NTree.Filter</FONT
+></TD
+><TD ALIGN="right"
+><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="infohead"
+>Portability</TD
+><TD CLASS="infoval"
+>portable</TD
+></TR
+><TR
+><TD CLASS="infohead"
+>Stability</TD
+><TD CLASS="infoval"
+>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
+><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
+>Filter for n-ary tree structure with filter combinators
+   copied and modified from HaXml (<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"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3ATFilter"
+>TFilter</A
+> node = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>NTrees</A
+> node -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>NTrees</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Asatisfies"
+>satisfies</A
+> ::  (a -&gt; [b]) -&gt; a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Anone"
+>none</A
+> ::  a -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Athis"
+>this</A
+> ::  a -&gt; [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisOf"
+>isOf</A
+> ::  (a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; a -&gt; [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisOfNode"
+>isOfNode</A
+> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkNTree"
+>mkNTree</A
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>NTrees</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmodifyNode"
+>modifyNode</A
+> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
+>Maybe</A
+> node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmodifyNode0"
+>modifyNode0</A
+> ::  (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmodifyChildren"
+>modifyChildren</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
+>TSFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AsubstChildren"
+>substChildren</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessChildren"
+>processChildren</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ao"
+>o</A
+> ::  (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A.%3E"
+>(.&gt;)</A
+> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AseqF"
+>seqF</A
+> ::  [a -&gt; [a]] -&gt; a -&gt; [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A..%3E"
+>(..&gt;)</A
+> ::  (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%2B%2B%2B"
+>(+++)</A
+> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Acat"
+>cat</A
+> ::  [a -&gt; [b]] -&gt; a -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AorElse"
+>orElse</A
+> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aiff"
+>iff</A
+> ::  (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Achoice"
+>choice</A
+> ::  [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
+>IfThen</A
+> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+>  <A HREF="#t%3AIfThen"
+>IfThen</A
+> a b = a <A HREF="#v%3A%3A-%3E"
+>:-&gt;</A
+> b</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Awhen"
+>when</A
+> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AwhenNot"
+>whenNot</A
+> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aguards"
+>guards</A
+> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Aneg"
+>neg</A
+> ::  (a -&gt; [c]) -&gt; a -&gt; [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Acontaining"
+>containing</A
+> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnotContaining"
+>notContaining</A
+> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%2F%3E"
+>(/&gt;)</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%3C%2F"
+>(&lt;/)</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adeep"
+>deep</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Adeepest"
+>deepest</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Amulti"
+>multi</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessBottomUp"
+>processBottomUp</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessBottomUpIfNot"
+>processBottomUpIfNot</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessTopDown"
+>processTopDown</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessTopDownUntil"
+>processTopDownUntil</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AinsertChildrenAt"
+>insertChildrenAt</A
+> ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+> -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AinsertChildrenAfter"
+>insertChildrenAfter</A
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AthisM"
+>thisM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; a -&gt; m [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AnoneM"
+>noneM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; a -&gt; m [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A.%3E%3E"
+>(.&gt;&gt;)</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AseqM"
+>seqM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%2B%2B%2B%3E%3E"
+>(+++&gt;&gt;)</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcatM"
+>catM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AifM"
+>ifM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AchoiceM"
+>choiceM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
+>IfThen</A
+> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AwhenM"
+>whenM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AwhenNotM"
+>whenNotM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AguardsM"
+>guardsM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcontainingM"
+>containingM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessChildrenM"
+>processChildrenM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessTopDownM"
+>processTopDownM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AprocessBottomUpM"
+>processBottomUpM</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AliftMf"
+>liftMf</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%24%24"
+>($$)</A
+> ::  (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3A%24%24%3C"
+>($$&lt;)</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AperformAction"
+>performAction</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3ATFilter"
+></A
+><B
+>TFilter</B
+> node = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>NTrees</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#TFilter"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>tree filter type: a function mapping a tree onto a list of trees
+</P
+><P
+>filter can be used in various ways, as predicates, selectors, transformers, ...
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3ATSFilter"
+></A
+><B
+>TSFilter</B
+> node = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>NTrees</A
+> node -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>NTrees</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#TSFilter"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>a filter for sequences
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Asatisfies"
+></A
+><B
+>satisfies</B
+> ::  (a -&gt; [b]) -&gt; a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#satisfies"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>satisfies converts a result of a predicate filter into a boolean
+</P
+><P
+>is a shortcut for not . null
+</P
+><P
+>typical use in guards or ifs: <TT
+>if (satisfies f) t then ... else ... </TT
+>
+</P
+><UL
+><LI
+> 1.parameter f :  the predicate filter
+</LI
+><LI
+> 2.parameter t :  the tree to be tested
+</LI
+><LI
+> returns : <TT
+>b = not (null (f t))</TT
+>
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+><A NAME="1"
+>Filter
+</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Anone"
+></A
+><B
+>none</B
+> ::  a -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#none"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>the null filter, returns the empty list
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Athis"
+></A
+><B
+>this</B
+> ::  a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#this"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>the unit filter, returns the single element list containing the argument
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisOf"
+></A
+><B
+>isOf</B
+> ::  (a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#isOf"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>conversion from predicate function to filter
+</P
+><UL
+><LI
+> 1.parameter p :  the predicate for testing the tree
+</LI
+><LI
+> returns : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"
+>this</A
+></TT
+> or <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
+>none</A
+></TT
+> depending on the predicate
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisOfNode"
+></A
+><B
+>isOfNode</B
+> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#isOfNode"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>select filter, selects trees with node values with a specific property
+</P
+><UL
+><LI
+> 1.parameter p :  the predicate for testing the node value
+</LI
+><LI
+> returns : <TT
+>[]</TT
+> or <TT
+>[t]</TT
+> depending on <TT
+>p t</TT
+>
+</LI
+></UL
+><P
+>a special case of <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"
+>isOf</A
+></TT
+> filter
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkNTree"
+></A
+><B
+>mkNTree</B
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#mkNTree"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>filter for substituting an arbitray tree by a constant
+</P
+><UL
+><LI
+> 1.parameter t :  the result tree, the input tree is ignored
+</LI
+><LI
+> returns : the filter
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AreplaceNode"
+></A
+><B
+>replaceNode</B
+> ::  node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#replaceNode"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>filter for replacing the node
+</P
+><UL
+><LI
+> 1.parameter n :  the new node
+</LI
+><LI
+> returns : the editing filter
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AreplaceChildren"
+></A
+><B
+>replaceChildren</B
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>NTrees</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#replaceChildren"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>filter for replacing the children
+</P
+><UL
+><LI
+> 1.parameter cs :  cs the list of children
+</LI
+><LI
+> returns : the filter
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmodifyNode"
+></A
+><B
+>modifyNode</B
+> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
+>Maybe</A
+> node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#modifyNode"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmodifyNode0"
+></A
+><B
+>modifyNode0</B
+> ::  (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#modifyNode0"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>filter for editing the node
+</P
+><UL
+><LI
+> 1.parameter nf :  the XNode editing funtion
+</LI
+><LI
+> returns : the filter
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmodifyChildren"
+></A
+><B
+>modifyChildren</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
+>TSFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#modifyChildren"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>filter for editing the children
+</P
+><P
+>all children are processed with a filter mapping lists to lists,
+ this enables not only elementwise editing by lifting a normal
+ filter to a list filter with <TT
+>(f $$)</TT
+> (see '($$)') but also manipulation
+ of the order of the elements, e.g. <A HREF="reverse.html"
+>reverse</A
+> is an appropriate childen
+ editing function.
+</P
+><UL
+><LI
+> 1.parameter csf :  the children editing function
+</LI
+><LI
+> returns : the filter
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"
+>processChildren</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AsubstChildren"
+></A
+><B
+>substChildren</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#substChildren"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>filter for substituting the children of a tree by
+ a new list of childen computed by applying a filter to the input tree.
+ <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
+>modifyChildren</A
+></TT
+> can be expressed by <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"
+>substChildren</A
+></TT
+>:
+ <TT
+>modifyChildren f t</TT
+> is equal to <TT
+>substChildren (f . getChildren)</TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessChildren"
+></A
+><B
+>processChildren</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#processChildren"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Filter for editing the children of a tree element wise
+</P
+><UL
+><LI
+> 1.parameter cf :  the filter applied to the children
+</LI
+><LI
+> returns : the editing filter
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
+>modifyChildren</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Ao"
+></A
+><B
+>o</B
+> ::  (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#o"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>sequential composition of filters, usually written in infix notation f2 <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
+>o</A
+></TT
+> f1.
+</P
+><P
+>for predicate filter the logical AND
+</P
+><UL
+><LI
+> 1.parameter f2 :  the 2. filter
+</LI
+><LI
+> 2.parameter f1 :  the 1. filter
+</LI
+><LI
+> returns : the fiter applying first f1 to n and then f2 to the result (like function composition)
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A.%3E"
+></A
+><B
+>(.&gt;)</B
+> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#.%3E"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>pronounced &quot;followed by&quot;, defined as: <TT
+>f .&gt; g = g `o` f</TT
+>.
+</P
+><P
+>allows filter composition in a more readable way from left to right
+</P
+><UL
+><LI
+> 1.parameter f1 :  the 1. filter
+</LI
+><LI
+> 2.parameter f2 :  the 2. filter
+</LI
+><LI
+> returns : the composition of f1 and f2
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
+>o</A
+></TT
+>, '(..&gt;)'
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AseqF"
+></A
+><B
+>seqF</B
+> ::  [a -&gt; [a]] -&gt; a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#seqF"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>apply a list of filters sequentially with '(.&gt;)', for predicate filters the generalized AND
+</P
+><P
+>see also : '(.&gt;)'
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A..%3E"
+></A
+><B
+>(..&gt;)</B
+> ::  (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#..%3E"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>special sequential composition.
+</P
+><P
+>filter f is applied to an argument t.
+ then filter g is applied to all elements of the result list,
+ but the argument t is also passed as extra parameter to g.
+</P
+><P
+>This allows for step by step transformations of a tree
+ with access to the original tree in every
+ transformation step.
+</P
+><P
+>see also : '(.&gt;)', <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
+>o</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A%2B%2B%2B"
+></A
+><B
+>(+++)</B
+> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#%2B%2B%2B"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>binary parallel composition, the logical OR for predicate filter
+</P
+><UL
+><LI
+> 1.parameter f1 :  the 1. filter
+</LI
+><LI
+> 2.parameter f2 :  the 2. filter
+</LI
+><LI
+> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Acat"
+></A
+><B
+>cat</B
+> ::  [a -&gt; [b]] -&gt; a -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#cat"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>apply a list of filters, a &quot;union&quot; for lists, for predicate filters the generalized OR
+</P
+><UL
+><LI
+> 1.parameter fs :  the list of filters
+</LI
+><LI
+> returns : the composing filter
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AorElse"
+></A
+><B
+>orElse</B
+> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#orElse"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>directional choice, usually written in infix notation as f <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"
+>orElse</A
+></TT
+> g
+</P
+><UL
+><LI
+> 1.parameter f :  the 1. filter
+</LI
+><LI
+> 2.parameter g :  the 2. filter
+</LI
+><LI
+> 3.parameter t :  the tree
+</LI
+><LI
+> returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aiff"
+></A
+><B
+>iff</B
+> ::  (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#iff"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>if then else lifted to filters
+</P
+><UL
+><LI
+> 1.parameter p :  the predicate filter
+</LI
+><LI
+> 2.parameter t :  the &quot;then&quot; filter
+</LI
+><LI
+> 3.parameter e :  the &quot;else&quot; filter
+</LI
+><LI
+> returns : the resulting conditional filter
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Achoice"
+></A
+><B
+>choice</B
+> ::  [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
+>IfThen</A
+> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#choice"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>multiway branch. The list of cases <TT
+>f :-&gt; g</TT
+> is processed sequentially,
+ in the first case for that f holds g is applied, if no case matches, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
+>none</A
+></TT
+> is
+ applied.
+ This filter can be used like a case expression: <TT
+>choice [ p1 :-&gt; f1, p2 :-&gt; f2, ... , this :-&gt; defaultFilter]</TT
+>
+</P
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
+>iff</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"
+>choiceM</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+>  <A NAME="t%3AIfThen"
+></A
+><B
+>IfThen</B
+> a b </TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#IfThen"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+>auxiliary datatype for cases within choice filter
+</TD
+></TR
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+>a <A NAME="v%3A%3A-%3E"
+></A
+><B
+>:-&gt;</B
+> b</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Awhen"
+></A
+><B
+>when</B
+> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#when"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>when the predicate p holds, f is applied, else the identity filter this
+</P
+><UL
+><LI
+> 1.parameter f :  the conditinally applied filter
+</LI
+><LI
+> 2.parameter p :  the predicate
+</LI
+><LI
+> returns : the conditional filter
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
+>iff</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"
+>whenNot</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"
+>guards</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
+>whenM</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AwhenNot"
+></A
+><B
+>whenNot</B
+> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#whenNot"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>the complementary filter of when
+</P
+><P
+>shortcut for f <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
+>when</A
+></TT
+> neg g
+</P
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
+>iff</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
+>when</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"
+>whenNotM</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"
+>neg</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aguards"
+></A
+><B
+>guards</B
+> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#guards"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>when the predicate p holds, f is applied, else the null filter none
+</P
+><UL
+><LI
+> 1.parameter p :  the predicate filter
+</LI
+><LI
+> 2.parameter f :  the conditionally applied filter
+</LI
+><LI
+> returns : the conditional filter
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
+>iff</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
+>when</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"
+>guardsM</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aneg"
+></A
+><B
+>neg</B
+> ::  (a -&gt; [c]) -&gt; a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#neg"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>negation lifted to filters
+</P
+><UL
+><LI
+> 1.parameter f :  the predicate filter
+</LI
+><LI
+> returns : the filter, that succeeds, when f failed
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Acontaining"
+></A
+><B
+>containing</B
+> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#containing"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>pruning: keep only those results from f for which g holds, usually written in infix notation as f <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"
+>containing</A
+></TT
+> g
+</P
+><UL
+><LI
+> 1.parameter f :  the processing filter
+</LI
+><LI
+> 2.parameter g :  the predicate filter
+</LI
+><LI
+> 3.parameter t :  the tree
+</LI
+><LI
+> returns : all trees r from f t, for which g r holds (is not the empty list)
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"
+>notContaining</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnotContaining"
+></A
+><B
+>notContaining</B
+> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#notContaining"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>pruning: keep only those results from f for which g does not hold
+</P
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"
+>containing</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A%2F%3E"
+></A
+><B
+>(/&gt;)</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#%2F%3E"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>pronounced &quot;slash&quot;, meaning g inside f
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A%3C%2F"
+></A
+><B
+>(&lt;/)</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#%3C%2F"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>pronounced &quot;outside&quot; meaning f containing g
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Adeep"
+></A
+><B
+>deep</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#deep"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>top down search.
+</P
+><P
+>search terminates, when filter f succeeds
+ can e.g. be used for finding all outermost tag node of a specific kind
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Adeepest"
+></A
+><B
+>deepest</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#deepest"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>bottom up search.
+</P
+><P
+>first the children are processed,
+ if this does not succeed, the node itself is processed
+ can e.g. be used for finding all innermost tag nodes of a specific kind
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Amulti"
+></A
+><B
+>multi</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#multi"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>process all nodes of the whole tree.
+</P
+><P
+>can e.g. be used for finding all nodes of a specific kind
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessBottomUp"
+></A
+><B
+>processBottomUp</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#processBottomUp"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>bottom up transformation
+</P
+><UL
+><LI
+> 1.parameter f :  the <EM
+>simple</EM
+> transforming filter
+</LI
+><LI
+> returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
+>processTopDown</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"
+>processBottomUpIfNot</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessBottomUpIfNot"
+></A
+><B
+>processBottomUpIfNot</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#processBottomUpIfNot"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>guarded bottom up transformation, stops at subtrees for which a predicate p holds
+</P
+><UL
+><LI
+> 1.parameter f :  the transforming filter
+</LI
+><LI
+> 2.parameter p :  the predicate filter for the guard
+</LI
+><LI
+> returns : the filter for processing all (sub-)trees
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
+>processBottomUp</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessTopDown"
+></A
+><B
+>processTopDown</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#processTopDown"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>top down transformation
+</P
+><UL
+><LI
+> 1.parameter f :  the <EM
+>simple</EM
+> transforming filter
+</LI
+><LI
+> returns : the filter that applies f first to the tree and then recursively to all subtrees of the result
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
+>processBottomUp</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessTopDownUntil"
+></A
+><B
+>processTopDownUntil</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#processTopDownUntil"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>top down transformation until a node to be transformed is found
+</P
+><UL
+><LI
+> 1.parameter f :  the <EM
+>simple</EM
+> transforming filter
+</LI
+><LI
+> returns : the filter that applies f first to the tree and, if the filter does not succeed,
+		  recursively to all children of the input tree.
+</LI
+></UL
+><P
+>Example:
+</P
+><PRE
+>processTopDownUntil none</PRE
+><P
+>is the identity filter (maybe a bit more inefficient).
+</P
+><P
+>Example:
+</P
+><PRE
+>processTopDownUntil (add1Attr &quot;border&quot; &quot;2&quot; `containing` isTag &quot;table&quot;)</PRE
+><P
+>is a filter for adding an attribute border=&quot;2&quot; in all top level table tags.
+		  The content of table tags will remain unchanged.
+</P
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
+>processTopDown</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
+>processBottomUp</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AinsertChildrenAt"
+></A
+><B
+>insertChildrenAt</B
+> ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+> -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#insertChildrenAt"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>insertion of trees into the list of children at a given position
+</P
+><P
+>useful for inserting something into the list of children at a given position
+ the list of children is split with the <TT
+>splitAt</TT
+> function
+ the nodes are inserted between these two sublists.
+</P
+><P
+>examples: <TT
+>insertChildrenAt 0 ins t</TT
+> inserts all elements computed with <TT
+>ins t</TT
+> in front
+ of the childen of <TT
+>t</TT
+>, <TT
+>insertChildrenAt 1 ins t</TT
+> behind the first child
+</P
+><P
+>see also: <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"
+>insertChildrenAfter</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AinsertChildrenAfter"
+></A
+><B
+>insertChildrenAfter</B
+> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#insertChildrenAfter"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>insertion of trees into the list of children after specific elements
+</P
+><P
+>useful for inserting something into the list of children of a node
+ the list of children is split with the <TT
+>span</TT
+> function and the filter p as predicate
+ the nodes are inserted between these two sublists
+</P
+><P
+>examples: <TT
+>insertChildrenAfter none ins t</TT
+> inserts all elements computed with <TT
+>ins t</TT
+> in front
+ of the childen of <TT
+>t</TT
+>, <TT
+>insertChildrenAfter this ins t</TT
+> appends the elements to the children
+</P
+><P
+>see also: <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"
+>insertChildrenAt</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+><A NAME="2"
+>Monadic Filter
+</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AthisM"
+></A
+><B
+>thisM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; a -&gt; m [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#thisM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>the monadic version of the identity filter this.
+</P
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"
+>this</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnoneM"
+></A
+><B
+>noneM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; a -&gt; m [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#noneM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>the monadic version of the null filter none.
+</P
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
+>none</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A.%3E%3E"
+></A
+><B
+>(.&gt;&gt;)</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#.%3E%3E"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>sequential composition of monadic filters, monadic version of &quot;.&gt;&quot;.
+</P
+><UL
+><LI
+> 1.parameter f1 :  the 1. monadic filter
+</LI
+><LI
+> 2.parameter f2 :  the 2. monadic filter
+</LI
+><LI
+> returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)
+</LI
+></UL
+><P
+>see also : '(.&gt;)'
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AseqM"
+></A
+><B
+>seqM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#seqM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>generalized sequential composition of monadic filters
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A%2B%2B%2B%3E%3E"
+></A
+><B
+>(+++&gt;&gt;)</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#%2B%2B%2B%3E%3E"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>binary parallel composition, the logical OR for predicate filter
+</P
+><UL
+><LI
+> 1.parameter f1 :  the 1. filter
+</LI
+><LI
+> 2.parameter f2 :  the 2. filter
+</LI
+><LI
+> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results
+ see also: <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
+>cat</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"
+>+++</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"
+>catM</A
+></TT
+>
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AcatM"
+></A
+><B
+>catM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#catM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>apply a list of monadic filters
+</P
+><UL
+><LI
+> 1.parameter fs :  the list of filters
+</LI
+><LI
+> returns : the composing filter
+ see also: <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
+>cat</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"
+>+++</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"
+>+++&gt;&gt;</A
+></TT
+>
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AifM"
+></A
+><B
+>ifM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#ifM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>monadic if-then-else.
+</P
+><UL
+><LI
+> 1.parameter p :  the predicate
+</LI
+><LI
+> 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree
+</LI
+><LI
+> 3.parameter elseP :  the else part
+</LI
+><LI
+> returns : the monadic filter for the conditional
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AchoiceM"
+></A
+><B
+>choiceM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
+>IfThen</A
+> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#choiceM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>monadic version of multiway branch. The list of cases <TT
+>f :-&gt; g</TT
+> is processed sequentially,
+ in the first case for that f holds g is applied, if no case matches, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
+>noneM</A
+></TT
+> is
+ applied.
+ This filter can be used like a case expression: <TT
+>choiceM [ p1 :-&gt; f1, p2 :-&gt; f2, ... , thisM :-&gt; defaultFilter]</TT
+>
+</P
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"
+>choice</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
+>ifM</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AwhenM"
+></A
+><B
+>whenM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#whenM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>when the predicate p holds, the monadic filter f is applied, else the identity filter.
+</P
+><UL
+><LI
+> 1.parameter f :  the conditinally applied monadic filter
+</LI
+><LI
+> 2.parameter p :  the simple predicate
+</LI
+><LI
+> returns : the conditional filter
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
+>ifM</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
+>when</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"
+>guardsM</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"
+>whenNotM</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AwhenNotM"
+></A
+><B
+>whenNotM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#whenNotM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>the complementary filter of whenM.
+</P
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
+>ifM</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
+>whenM</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"
+>whenNot</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AguardsM"
+></A
+><B
+>guardsM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#guardsM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>when the predicate p holds, the monadic filter f is applied, else the null filter.
+</P
+><UL
+><LI
+> 1.parameter p :  the simple predicate filter
+</LI
+><LI
+> 2.parameter f :  the conditionally applied monadic filter
+</LI
+><LI
+> returns : the conditional filter
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
+>ifM</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"
+>guards</A
+></TT
+>, <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
+>whenM</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AcontainingM"
+></A
+><B
+>containingM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#containingM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>pruning: monadic version of containing, usually written in infix notation as f <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"
+>containingM</A
+></TT
+> g
+</P
+><UL
+><LI
+> 1.parameter f :  the monadic processing filter
+</LI
+><LI
+> 2.parameter g :  the predicate filter
+</LI
+><LI
+> 3.parameter t :  the tree
+</LI
+><LI
+> returns : all trees r from f t, for which g r holds (is not the empty list)
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"
+>notContaining</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessChildrenM"
+></A
+><B
+>processChildrenM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#processChildrenM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>Filter for editing the children of a tree with a monadic filter
+</P
+><UL
+><LI
+> 1.parameter cf :  the monadic filter applied to the children
+</LI
+><LI
+> returns : the monadic editing filter
+</LI
+></UL
+><P
+>see also : <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"
+>processChildren</A
+></TT
+>
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessTopDownM"
+></A
+><B
+>processTopDownM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#processTopDownM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>monadic variant of <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
+>processTopDown</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AprocessBottomUpM"
+></A
+><B
+>processBottomUpM</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; m [<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#processBottomUpM"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>monadic variant of <TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
+>processBottomUp</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AliftMf"
+></A
+><B
+>liftMf</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#liftMf"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>lift a filter to a monadic filter
+</P
+><UL
+><LI
+> 1.parameter f :  the <EM
+>simple</EM
+> filter
+</LI
+><LI
+> returns : the lifted monadic version
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A%24%24"
+></A
+><B
+>($$)</B
+> ::  (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#%24%24"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>infix operator for applying a filter to a list of trees
+</P
+><UL
+><LI
+> 1.parameter f :  the filter
+</LI
+><LI
+> 2.parameter ts :  the list of trees
+</LI
+><LI
+> returns : the concatenated list of results
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3A%24%24%3C"
+></A
+><B
+>($$&lt;)</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#%24%24%3C"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>infix operator for applying a monadic filter to a list of trees,
+ typically used in do-notation for processing of intermediate results.
+</P
+><UL
+><LI
+> 1.parameter f :  the monadic filter
+</LI
+><LI
+> 2.parameter ts :  the list of trees
+</LI
+><LI
+> returns : the concatenated list of results
+</LI
+></UL
+><P
+>see also : '($$)'
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AperformAction"
+></A
+><B
+>performAction</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"
+>Monad</A
+> m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Data-Tree-NTree-Filter.html#performAction"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>run an arbitray command on a tree t and return the tree,
+ used for inserting arbitray commands in a filter pipeline
+</P
+><UL
+><LI
+> 1.parameter cmd :  the command
+</LI
+><LI
+> 2.parameter t :  the argument tree
+</LI
+><LI
+> returns : the unchanged tree as a single element list
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 2.3.0</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hxt-filter/System-PipeOpen.html b/doc/hxt-filter/System-PipeOpen.html
--- a/doc/hxt-filter/System-PipeOpen.html
+++ b/doc/hxt-filter/System-PipeOpen.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/System-PipeOpen.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-DOM-EditFilters.html b/doc/hxt-filter/Text-XML-HXT-DOM-EditFilters.html
--- a/doc/hxt-filter/Text-XML-HXT-DOM-EditFilters.html
+++ b/doc/hxt-filter/Text-XML-HXT-DOM-EditFilters.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html"
 >Source code</A
@@ -80,7 +80,11 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AcanonicalizeTree"
 >canonicalizeTree</A
-> :: XmlFilter -&gt; XmlFilter</TD
+> :: <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"
@@ -90,7 +94,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AcanonicalizeAllNodes"
 >canonicalizeAllNodes</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -100,7 +106,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AcanonicalizeForXPath"
 >canonicalizeForXPath</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -110,7 +118,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AcollapseXText"
 >collapseXText</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -120,7 +130,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AcollapseAllXText"
 >collapseAllXText</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -130,7 +142,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AindentDoc"
 >indentDoc</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -140,7 +154,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveWhiteSpace"
 >removeWhiteSpace</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -150,7 +166,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveAllWhiteSpace"
 >removeAllWhiteSpace</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -160,7 +178,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveDocWhiteSpace"
 >removeDocWhiteSpace</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -170,7 +190,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveComment"
 >removeComment</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -180,7 +202,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveAllComment"
 >removeAllComment</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -190,7 +214,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtransfCdata"
 >transfCdata</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -200,7 +226,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtransfAllCdata"
 >transfAllCdata</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -210,7 +238,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtransfCdataEscaped"
 >transfCdataEscaped</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -220,7 +250,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtransfAllCdataEscaped"
 >transfAllCdataEscaped</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -230,7 +262,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtransfCharRef"
 >transfCharRef</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -240,7 +274,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtransfAllCharRef"
 >transfAllCharRef</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -250,7 +286,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AescapeXmlDoc"
 >escapeXmlDoc</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -260,7 +298,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AescapeXmlText"
 >escapeXmlText</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -270,7 +310,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AescapeXmlAttrValue"
 >escapeXmlAttrValue</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -280,7 +322,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AunparseXmlDoc"
 >unparseXmlDoc</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -290,7 +334,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AnumberLinesInXmlDoc"
 >numberLinesInXmlDoc</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -314,7 +360,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtreeRepOfXmlDoc"
 >treeRepOfXmlDoc</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -324,7 +372,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AhaskellRepOfXmlDoc"
 >haskellRepOfXmlDoc</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -334,7 +384,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AaddHeadlineToXmlDoc"
 >addHeadlineToXmlDoc</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -344,7 +396,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AaddXmlPiToDoc"
 >addXmlPiToDoc</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -370,7 +424,11 @@
 ></A
 ><B
 >canonicalizeTree</B
-> :: XmlFilter -&gt; XmlFilter</TD
+> :: <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
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#canonicalizeTree"
 >Source</A
@@ -436,7 +494,9 @@
 ></A
 ><B
 >canonicalizeAllNodes</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#canonicalizeAllNodes"
 >Source</A
@@ -472,7 +532,9 @@
 ></A
 ><B
 >canonicalizeForXPath</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#canonicalizeForXPath"
 >Source</A
@@ -509,7 +571,9 @@
 ></A
 ><B
 >collapseXText</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#collapseXText"
 >Source</A
@@ -536,7 +600,9 @@
 ></A
 ><B
 >collapseAllXText</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#collapseAllXText"
 >Source</A
@@ -572,7 +638,9 @@
 ></A
 ><B
 >indentDoc</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#indentDoc"
 >Source</A
@@ -631,7 +699,9 @@
 ></A
 ><B
 >removeWhiteSpace</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#removeWhiteSpace"
 >Source</A
@@ -674,7 +744,9 @@
 ></A
 ><B
 >removeAllWhiteSpace</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#removeAllWhiteSpace"
 >Source</A
@@ -717,7 +789,9 @@
 ></A
 ><B
 >removeDocWhiteSpace</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#removeDocWhiteSpace"
 >Source</A
@@ -775,7 +849,9 @@
 ></A
 ><B
 >removeComment</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#removeComment"
 >Source</A
@@ -802,7 +878,9 @@
 ></A
 ><B
 >removeAllComment</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#removeAllComment"
 >Source</A
@@ -829,7 +907,9 @@
 ></A
 ><B
 >transfCdata</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#transfCdata"
 >Source</A
@@ -856,7 +936,9 @@
 ></A
 ><B
 >transfAllCdata</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#transfAllCdata"
 >Source</A
@@ -883,7 +965,9 @@
 ></A
 ><B
 >transfCdataEscaped</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#transfCdataEscaped"
 >Source</A
@@ -910,7 +994,9 @@
 ></A
 ><B
 >transfAllCdataEscaped</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#transfAllCdataEscaped"
 >Source</A
@@ -937,7 +1023,9 @@
 ></A
 ><B
 >transfCharRef</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#transfCharRef"
 >Source</A
@@ -964,7 +1052,9 @@
 ></A
 ><B
 >transfAllCharRef</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#transfAllCharRef"
 >Source</A
@@ -991,7 +1081,9 @@
 ></A
 ><B
 >escapeXmlDoc</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#escapeXmlDoc"
 >Source</A
@@ -1036,7 +1128,9 @@
 ></A
 ><B
 >escapeXmlText</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#escapeXmlText"
 >Source</A
@@ -1073,7 +1167,9 @@
 ></A
 ><B
 >escapeXmlAttrValue</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#escapeXmlAttrValue"
 >Source</A
@@ -1114,7 +1210,9 @@
 ></A
 ><B
 >unparseXmlDoc</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#unparseXmlDoc"
 >Source</A
@@ -1158,7 +1256,9 @@
 ></A
 ><B
 >numberLinesInXmlDoc</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#numberLinesInXmlDoc"
 >Source</A
@@ -1226,7 +1326,9 @@
 ></A
 ><B
 >treeRepOfXmlDoc</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#treeRepOfXmlDoc"
 >Source</A
@@ -1267,7 +1369,9 @@
 ></A
 ><B
 >haskellRepOfXmlDoc</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#haskellRepOfXmlDoc"
 >Source</A
@@ -1308,7 +1412,9 @@
 ></A
 ><B
 >addHeadlineToXmlDoc</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#addHeadlineToXmlDoc"
 >Source</A
@@ -1330,7 +1436,9 @@
 ></A
 ><B
 >addXmlPiToDoc</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-EditFilters.html#addXmlPiToDoc"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-DOM-Namespace.html b/doc/hxt-filter/Text-XML-HXT-DOM-Namespace.html
--- a/doc/hxt-filter/Text-XML-HXT-DOM-Namespace.html
+++ b/doc/hxt-filter/Text-XML-HXT-DOM-Namespace.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-Namespace.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-DOM-NamespaceFilter.html b/doc/hxt-filter/Text-XML-HXT-DOM-NamespaceFilter.html
--- a/doc/hxt-filter/Text-XML-HXT-DOM-NamespaceFilter.html
+++ b/doc/hxt-filter/Text-XML-HXT-DOM-NamespaceFilter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html"
 >Source code</A
@@ -124,7 +124,9 @@
 >type</SPAN
 > <A HREF="#t%3ANamespaceTable"
 >NamespaceTable</A
-> = NsEnv</TD
+> = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
+>NsEnv</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -134,7 +136,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3ApropagateNamespaces"
 >propagateNamespaces</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -146,7 +150,9 @@
 >propagateNamespaceEnv</A
 > :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"
 >NamespaceTable</A
-> -&gt; XmlFilter</TD
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -156,7 +162,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateNamespaces"
 >validateNamespaces</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -166,7 +174,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Avalidate1Namespaces"
 >validate1Namespaces</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -176,7 +186,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisNamespaceDecl"
 >isNamespaceDecl</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -204,7 +216,9 @@
 ></A
 ><B
 >NamespaceTable</B
-> = NsEnv</TD
+> = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv"
+>NsEnv</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#NamespaceTable"
 >Source</A
@@ -217,7 +231,9 @@
 ><TD CLASS="doc"
 >Type for the namespace association list, used when propagating namespaces by
  modifying the <TT
->QName</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TT
 > values in a tree
 </TD
 ></TR
@@ -234,7 +250,9 @@
 ></A
 ><B
 >propagateNamespaces</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#propagateNamespaces"
 >Source</A
@@ -277,7 +295,9 @@
 >propagateNamespaceEnv</B
 > :: <A HREF="Text-XML-HXT-DOM-NamespaceFilter.html#t%3ANamespaceTable"
 >NamespaceTable</A
-> -&gt; XmlFilter</TD
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#propagateNamespaceEnv"
 >Source</A
@@ -305,7 +325,9 @@
 ></A
 ><B
 >validateNamespaces</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#validateNamespaces"
 >Source</A
@@ -324,14 +346,22 @@
 ></TT
 > to all nodes.
  Predicates <TT
->isWellformedQName</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQName"
+>isWellformedQName</A
+></TT
 >, <TT
->isWellformedQualifiedName</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQualifiedName"
+>isWellformedQualifiedName</A
+></TT
 >, <TT
->isDeclaredNamespace</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#v%3AisDeclaredNamespace"
+>isDeclaredNamespace</A
+></TT
 >
  and <TT
->isWellformedNSDecl</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedNSDecl"
+>isWellformedNSDecl</A
+></TT
 > are applied to the appropriate tags and attributes.
 </TD
 ></TR
@@ -348,7 +378,9 @@
 ></A
 ><B
 >validate1Namespaces</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#validate1Namespaces"
 >Source</A
@@ -375,7 +407,9 @@
 ></A
 ><B
 >isNamespaceDecl</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-NamespaceFilter.html#isNamespaceDecl"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-DOM-XmlState.html b/doc/hxt-filter/Text-XML-HXT-DOM-XmlState.html
--- a/doc/hxt-filter/Text-XML-HXT-DOM-XmlState.html
+++ b/doc/hxt-filter/Text-XML-HXT-DOM-XmlState.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlState.html"
 >Source code</A
@@ -130,9 +130,13 @@
 >type</SPAN
 > <A HREF="#t%3ASysStateAttrs"
 >SysStateAttrs</A
-> = AssocList <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> XmlTrees</TD
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -190,9 +194,13 @@
 >type</SPAN
 > <A HREF="#t%3AXmlStateFilter"
 >XmlStateFilter</A
-> state = XmlTree -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
+> state = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
-> state XmlTrees</TD
+> state <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -346,7 +354,9 @@
 >setSysParamTree</A
 > ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
@@ -406,7 +416,9 @@
 >String</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
-> state XmlTrees</TD
+> state <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -542,7 +554,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AliftF"
 >liftF</A
-> ::  XmlFilter -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> ::  <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
@@ -826,7 +840,9 @@
 >Int</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlFilter</TD
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -836,7 +852,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AstatusOk"
 >statusOk</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -984,9 +1002,13 @@
 ></A
 ><B
 >SysStateAttrs</B
-> = AssocList <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> XmlTrees</TD
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlState.html#SysStateAttrs"
 >Source</A
@@ -1132,9 +1154,13 @@
 ></A
 ><B
 >XmlStateFilter</B
-> state = XmlTree -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
+> state = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
-> state XmlTrees</TD
+> state <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlState.html#XmlStateFilter"
 >Source</A
@@ -1536,7 +1562,9 @@
 >setSysParamTree</B
 > ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
 ><TD CLASS="declbut"
@@ -1718,7 +1746,9 @@
 >String</A
 > -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXState"
 >XState</A
-> state XmlTrees</TD
+> state <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlState.html#getSysParamTree"
 >Source</A
@@ -2102,7 +2132,9 @@
 ></A
 ><B
 >liftF</B
-> ::  XmlFilter -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> ::  <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
 ><TD CLASS="declbut"
@@ -2702,13 +2734,19 @@
 ><TD CLASS="doc"
 >error level translation
  <TT
->c_warn</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"
+>c_warn</A
+></TT
 > (1) : warning,
  <TT
->c_err</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
+>c_err</A
+></TT
 > (2): error (e.g. parse error, validation error, ...),
  <TT
->c_fatal</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"
+>c_fatal</A
+></TT
 > (3) : fatal error (document access error, internal error, ...)
 </TD
 ></TR
@@ -2896,15 +2934,21 @@
 >a_status</TT
 > in a document root.
  if it contains a value greater or equal to <TT
->c_err</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
+>c_err</A
+></TT
 >, an error with error message
  stored in attribute <TT
 >a_module</TT
 > is issued and the filter acts as the <TT
->noneM</TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
+>noneM</A
+></TT
 > filter
  else its the <TT
->thisM</TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"
+>thisM</A
+></TT
 > filter
 </TD
 ></TR
@@ -2925,7 +2969,9 @@
 >Int</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlFilter</TD
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlState.html#setStatus"
 >Source</A
@@ -2938,7 +2984,9 @@
 ><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
->c_err</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
+>c_err</A
+></TT
 >
 </TD
 ></TR
@@ -2955,7 +3003,9 @@
 ></A
 ><B
 >statusOk</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlState.html#statusOk"
 >Source</A
@@ -2967,7 +3017,9 @@
 ><TR
 ><TD CLASS="doc"
 >check whether tree is a document root and the status attribute has a value less than <TT
->c_err</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
+>c_err</A
+></TT
 >
 </TD
 ></TR
@@ -3040,7 +3092,9 @@
 ><P
 >monadic filter for processing the attribute list of a tag.
  for other trees this filter acts like <TT
->noneM</TT
+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
+>noneM</A
+></TT
 >
 </P
 ><P
diff --git a/doc/hxt-filter/Text-XML-HXT-DOM-XmlTree.html b/doc/hxt-filter/Text-XML-HXT-DOM-XmlTree.html
--- a/doc/hxt-filter/Text-XML-HXT-DOM-XmlTree.html
+++ b/doc/hxt-filter/Text-XML-HXT-DOM-XmlTree.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTree.html"
 >Source code</A
@@ -73,6 +73,16 @@
 ><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"
diff --git a/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeFilter.html b/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeFilter.html
--- a/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeFilter.html
+++ b/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeFilter.html
@@ -19,5051 +19,5709 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
-><TD CLASS="topbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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.XmlTreeFilter</FONT
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="section1"
->Description</TD
-></TR
-><TR
-><TD CLASS="doc"
->basic XmlTree filter
-</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
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisTag"
->isTag</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNsTag"
->isNsTag</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasLocalPart"
->hasLocalPart</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasPrefix"
->hasPrefix</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNamespace"
->hasNamespace</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfTag"
->isOfTag</A
-> :: (TagName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasAttr"
->hasAttr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasNsAttr"
->hasNsAttr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasValue"
->hasValue</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisPi"
->isPi</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXmlPi"
->isXmlPi</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfPi"
->isOfPi</A
-> :: (TagName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCdata"
->isXCdata</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCharRef"
->isXCharRef</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXCmt"
->isXCmt</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXDTD"
->isXDTD</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXEntityRef"
->isXEntityRef</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXError"
->isXError</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXPi"
->isXPi</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXTag"
->isXTag</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXAttr"
->isXAttr</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttr"
->isAttr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNsAttr"
->isNsAttr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfAttr"
->isOfAttr</A
-> :: (AttrName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisXText"
->isXText</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisText"
->isText</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisOfText"
->isOfText</A
-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWhiteSpace"
->isWhiteSpace</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDoctype"
->isDoctype</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttlist"
->isAttlist</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisElement"
->isElement</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisEntity"
->isEntity</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisPeRef"
->isPeRef</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDTDName"
->isDTDName</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisCondSect"
->isCondSect</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisParameterEntity"
->isParameterEntity</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNotation"
->isNotation</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisDefaultAttrKind"
->isDefaultAttrKind</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisEnumAttrType"
->isEnumAttrType</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisFixedAttrKind"
->isFixedAttrKind</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisIdAttrType"
->isIdAttrType</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisIdRefAttrType"
->isIdRefAttrType</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisNotationAttrType"
->isNotationAttrType</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisRequiredAttrKind"
->isRequiredAttrKind</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttlistParameterEntity"
->isAttlistParameterEntity</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisEmptyElement"
->isEmptyElement</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisMixedContentElement"
->isMixedContentElement</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisElemWithContent"
->isElemWithContent</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisAttlistOfElement"
->isAttlistOfElement</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisElemContentParamEntity"
->isElemContentParamEntity</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisUnparsedEntity"
->isUnparsedEntity</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisExternalParameterEntity"
->isExternalParameterEntity</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisInternalParameterEntity"
->isInternalParameterEntity</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisWarning"
->isWarning</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisError"
->isError</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AisFatalError"
->isFatalError</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXTag"
->mkXTag</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkQTag"
->mkQTag</A
-> :: QName -&gt; XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXNsTag"
->mkXNsTag</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXAttr"
->mkXAttr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkQAttr"
->mkQAttr</A
-> :: QName -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXNsAttr"
->mkXNsAttr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXText"
->mkXText</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXCharRef"
->mkXCharRef</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXEntityRef"
->mkXEntityRef</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXCmt"
->mkXCmt</A
-> :: XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXDTD"
->mkXDTD</A
-> :: DTDElem -&gt; Attributes -&gt; XmlTrees -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXCdata"
->mkXCdata</A
-> :: XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXPi"
->mkXPi</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmkXError"
->mkXError</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetName"
->getName</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetAttrl"
->getAttrl</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetValue"
->getValue</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetNsValue"
->getNsValue</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetDTDValue"
->getDTDValue</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXCmt"
->getXCmt</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AgetXCdata"
->getXCdata</A
-> :: XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreplaceQName"
->replaceQName</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyText"
->modifyText</A
-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
->) -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyQName"
->modifyQName</A
-> :: (TagName -&gt; TagName) -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessAttrl"
->processAttrl</A
-> :: XmlSFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AprocessAttr"
->processAttr</A
-> :: XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AreplaceAttrl"
->replaceAttrl</A
-> :: XmlTrees -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adel1Attr"
->del1Attr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aadd1Attr"
->add1Attr</A
-> :: XmlTree -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttrl"
->addAttrl</A
-> :: XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttr"
->addAttr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddAttrInt"
->addAttrInt</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AmodifyAttr"
->modifyAttr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
->) -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AaddDTDAttr"
->addDTDAttr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%3D"
->(+=)</A
-> :: XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3A%2B%2B%3D"
->(++=)</A
-> :: XmlFilter -&gt; [XmlFilter] -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AvalueOf"
->valueOf</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AintValueOf"
->intValueOf</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-></TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atag"
->tag</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; [XmlFilter] -&gt; [XmlFilter] -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Astag"
->stag</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; [XmlFilter] -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aatag"
->atag</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; [XmlFilter] -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aetag"
->etag</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqetag"
->qetag</A
-> :: QName -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqtag"
->qtag</A
-> :: QName -&gt; XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3ArootTag"
->rootTag</A
-> :: [XmlFilter] -&gt; [XmlFilter] -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aattr"
->attr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aqattr"
->qattr</A
-> :: QName -&gt; XmlFilter -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Asattr"
->sattr</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Atxt"
->txt</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acmt"
->cmt</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aspi"
->spi</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Acdata"
->cdata</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Adtd"
->dtd</A
-> :: DTDElem -&gt; [XmlFilter] -&gt; [XmlFilter] -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Awarn"
->warn</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Aerr"
->err</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3Afatal"
->fatal</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-></TR
-><TR
-><TD CLASS="s8"
-></TD
-></TR
-><TR
-><TD CLASS="decl"
-><A HREF="#v%3AhasOption"
->hasOption</A
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</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%3AisRoot"
-></A
-><B
->isRoot</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isRoot"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisTag"
-></A
-><B
->isTag</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isTag"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisNsTag"
-></A
-><B
->isNsTag</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isNsTag"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AhasLocalPart"
-></A
-><B
->hasLocalPart</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasLocalPart"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AhasPrefix"
-></A
-><B
->hasPrefix</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasPrefix"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AhasNamespace"
-></A
-><B
->hasNamespace</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasNamespace"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisOfTag"
-></A
-><B
->isOfTag</B
-> :: (TagName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isOfTag"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AhasAttr"
-></A
-><B
->hasAttr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AhasNsAttr"
-></A
-><B
->hasNsAttr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasNsAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AhasValue"
-></A
-><B
->hasValue</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasValue"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisPi"
-></A
-><B
->isPi</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isPi"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXmlPi"
-></A
-><B
->isXmlPi</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXmlPi"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisOfPi"
-></A
-><B
->isOfPi</B
-> :: (TagName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isOfPi"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXCdata"
-></A
-><B
->isXCdata</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXCdata"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXCharRef"
-></A
-><B
->isXCharRef</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXCharRef"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXCmt"
-></A
-><B
->isXCmt</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXCmt"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXDTD"
-></A
-><B
->isXDTD</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXDTD"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXEntityRef"
-></A
-><B
->isXEntityRef</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXEntityRef"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXError"
-></A
-><B
->isXError</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXError"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXPi"
-></A
-><B
->isXPi</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXPi"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXTag"
-></A
-><B
->isXTag</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXTag"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXAttr"
-></A
-><B
->isXAttr</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisAttr"
-></A
-><B
->isAttr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisNsAttr"
-></A
-><B
->isNsAttr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isNsAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisOfAttr"
-></A
-><B
->isOfAttr</B
-> :: (AttrName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isOfAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->general test for an attribute name
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisXText"
-></A
-><B
->isXText</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXText"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisText"
-></A
-><B
->isText</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isText"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisOfText"
-></A
-><B
->isOfText</B
-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
->Bool</A
->) -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isOfText"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisWhiteSpace"
-></A
-><B
->isWhiteSpace</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isWhiteSpace"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisDoctype"
-></A
-><B
->isDoctype</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isDoctype"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisAttlist"
-></A
-><B
->isAttlist</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isAttlist"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisElement"
-></A
-><B
->isElement</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isElement"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisEntity"
-></A
-><B
->isEntity</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isEntity"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisPeRef"
-></A
-><B
->isPeRef</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isPeRef"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisDTDName"
-></A
-><B
->isDTDName</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isDTDName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisCondSect"
-></A
-><B
->isCondSect</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isCondSect"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisParameterEntity"
-></A
-><B
->isParameterEntity</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isParameterEntity"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisNotation"
-></A
-><B
->isNotation</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isNotation"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisDefaultAttrKind"
-></A
-><B
->isDefaultAttrKind</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisEnumAttrType"
-></A
-><B
->isEnumAttrType</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisFixedAttrKind"
-></A
-><B
->isFixedAttrKind</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisIdAttrType"
-></A
-><B
->isIdAttrType</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisRequiredAttrKind"
-></A
-><B
->isRequiredAttrKind</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisAttlistParameterEntity"
-></A
-><B
->isAttlistParameterEntity</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isAttlistParameterEntity"
->Source</A
-></TD
-></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
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisMixedContentElement"
-></A
-><B
->isMixedContentElement</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisElemWithContent"
-></A
-><B
->isElemWithContent</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isElemWithContent"
->Source</A
-></TD
-></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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisElemContentParamEntity"
-></A
-><B
->isElemContentParamEntity</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isElemContentParamEntity"
->Source</A
-></TD
-></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
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisExternalParameterEntity"
-></A
-><B
->isExternalParameterEntity</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isExternalParameterEntity"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisInternalParameterEntity"
-></A
-><B
->isInternalParameterEntity</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isInternalParameterEntity"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisWarning"
-></A
-><B
->isWarning</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isWarning"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisError"
-></A
-><B
->isError</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isError"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AisFatalError"
-></A
-><B
->isFatalError</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isFatalError"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXTag"
-></A
-><B
->mkXTag</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXTag"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkQTag"
-></A
-><B
->mkQTag</B
-> :: QName -&gt; XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkQTag"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXNsTag"
-></A
-><B
->mkXNsTag</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXNsTag"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXAttr"
-></A
-><B
->mkXAttr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkQAttr"
-></A
-><B
->mkQAttr</B
-> :: QName -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkQAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXNsAttr"
-></A
-><B
->mkXNsAttr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXNsAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXText"
-></A
-><B
->mkXText</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXText"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXCharRef"
-></A
-><B
->mkXCharRef</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXCharRef"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXEntityRef"
-></A
-><B
->mkXEntityRef</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXEntityRef"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXCmt"
-></A
-><B
->mkXCmt</B
-> :: XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXCmt"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXDTD"
-></A
-><B
->mkXDTD</B
-> :: DTDElem -&gt; Attributes -&gt; XmlTrees -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXDTD"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXCdata"
-></A
-><B
->mkXCdata</B
-> :: XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXCdata"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXPi"
-></A
-><B
->mkXPi</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXPi"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmkXError"
-></A
-><B
->mkXError</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXError"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AgetName"
-></A
-><B
->getName</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AgetAttrl"
-></A
-><B
->getAttrl</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getAttrl"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->filter for selecting the attibute list
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AgetValue"
-></A
-><B
->getValue</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getValue"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AgetNsValue"
-></A
-><B
->getNsValue</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getNsValue"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AgetDTDValue"
-></A
-><B
->getDTDValue</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getDTDValue"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AgetXCmt"
-></A
-><B
->getXCmt</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getXCmt"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AgetXCdata"
-></A
-><B
->getXCdata</B
-> :: XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getXCdata"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AreplaceQName"
-></A
-><B
->replaceQName</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#replaceQName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmodifyText"
-></A
-><B
->modifyText</B
-> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
->) -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#modifyText"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmodifyQName"
-></A
-><B
->modifyQName</B
-> :: (TagName -&gt; TagName) -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#modifyQName"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessAttrl"
-></A
-><B
->processAttrl</B
-> :: XmlSFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#processAttrl"
->Source</A
-></TD
-></TR
-></TABLE
-></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
->none</TT
->
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AprocessAttr"
-></A
-><B
->processAttr</B
-> :: XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#processAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
-><P
->elementwise processing of the attributes of a tag.
- for other trees this filter acts like <TT
->none</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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AreplaceAttrl"
-></A
-><B
->replaceAttrl</B
-> :: XmlTrees -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#replaceAttrl"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Adel1Attr"
-></A
-><B
->del1Attr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#del1Attr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aadd1Attr"
-></A
-><B
->add1Attr</B
-> :: XmlTree -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#add1Attr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AaddAttrl"
-></A
-><B
->addAttrl</B
-> :: XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#addAttrl"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AaddAttr"
-></A
-><B
->addAttr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#addAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AaddAttrInt"
-></A
-><B
->addAttrInt</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#addAttrInt"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AmodifyAttr"
-></A
-><B
->modifyAttr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
->) -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#modifyAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AaddDTDAttr"
-></A
-><B
->addDTDAttr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#addDTDAttr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A%2B%3D"
-></A
-><B
->(+=)</B
-> :: XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#%2B%3D"
->Source</A
-></TD
-></TR
-></TABLE
-></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
->modifyChildren</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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3A%2B%2B%3D"
-></A
-><B
->(++=)</B
-> :: XmlFilter -&gt; [XmlFilter] -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#%2B%2B%3D"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AvalueOf"
-></A
-><B
->valueOf</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#valueOf"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AintValueOf"
-></A
-><B
->intValueOf</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
->Int</A
-></TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#intValueOf"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Atag"
-></A
-><B
->tag</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; [XmlFilter] -&gt; [XmlFilter] -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#tag"
->Source</A
-></TD
-></TR
-></TABLE
-></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
->cat</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
->cat</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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Astag"
-></A
-><B
->stag</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; [XmlFilter] -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#stag"
->Source</A
-></TD
-></TR
-></TABLE
-></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
->cat</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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aatag"
-></A
-><B
->atag</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; [XmlFilter] -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#atag"
->Source</A
-></TD
-></TR
-></TABLE
-></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
->cat</TT
->
-</P
-></TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aetag"
-></A
-><B
->etag</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#etag"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aqetag"
-></A
-><B
->qetag</B
-> :: QName -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#qetag"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Qualified version of etag
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aqtag"
-></A
-><B
->qtag</B
-> :: QName -&gt; XmlFilter -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#qtag"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Alias for mkQTag
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3ArootTag"
-></A
-><B
->rootTag</B
-> :: [XmlFilter] -&gt; [XmlFilter] -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#rootTag"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aattr"
-></A
-><B
->attr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#attr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aqattr"
-></A
-><B
->qattr</B
-> :: QName -&gt; XmlFilter -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#qattr"
->Source</A
-></TD
-></TR
-></TABLE
-></TD
-></TR
-><TR
-><TD CLASS="doc"
->Alias for mkQAttr
-</TD
-></TR
-><TR
-><TD CLASS="s15"
-></TD
-></TR
-><TR
-><TD CLASS="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Asattr"
-></A
-><B
->sattr</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#sattr"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Atxt"
-></A
-><B
->txt</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#txt"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Acmt"
-></A
-><B
->cmt</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#cmt"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aspi"
-></A
-><B
->spi</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#spi"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Acdata"
-></A
-><B
->cdata</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#cdata"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Adtd"
-></A
-><B
->dtd</B
-> :: DTDElem -&gt; [XmlFilter] -&gt; [XmlFilter] -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#dtd"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Awarn"
-></A
-><B
->warn</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#warn"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Aerr"
-></A
-><B
->err</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#err"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3Afatal"
-></A
-><B
->fatal</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
-><TD CLASS="declbut"
-><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#fatal"
->Source</A
-></TD
-></TR
-></TABLE
-></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="topdecl"
-><TABLE CLASS="declbar"
-><TR
-><TD CLASS="declname"
-><A NAME="v%3AhasOption"
-></A
-><B
->hasOption</B
-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
->String</A
-> -&gt; XmlFilter</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+><TD CLASS="topbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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.XmlTreeFilter</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>basic XmlTree filter
+</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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AisNsTag"
+>isNsTag</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasLocalPart"
+>hasLocalPart</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AhasPrefix"
+>hasPrefix</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AhasNamespace"
+>hasNamespace</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AisOfTag"
+>isOfTag</A
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
+>TagName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasAttr"
+>hasAttr</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AhasNsAttr"
+>hasNsAttr</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhasValue"
+>hasValue</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AisPi"
+>isPi</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</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%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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AisNsAttr"
+>isNsAttr</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-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; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</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%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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AisOfText"
+>isOfText</A
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AmkQTag"
+>mkQTag</A
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AmkQAttr"
+>mkQAttr</A
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AmkXCharRef"
+>mkXCharRef</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</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%3AmkXEntityRef"
+>mkXEntityRef</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%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="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AmkXError"
+>mkXError</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AgetNsValue"
+>getNsValue</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AgetDTDValue"
+>getDTDValue</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AmodifyText"
+>modifyText</A
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-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="/usr/local/share/doc/hxt-8.3.0/html/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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Aadd1Attr"
+>add1Attr</A
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AaddAttrInt"
+>addAttrInt</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</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%3AmodifyAttr"
+>modifyAttr</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AaddDTDAttr"
+>addDTDAttr</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AintValueOf"
+>intValueOf</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atag"
+>tag</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Astag"
+>stag</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Aatag"
+>atag</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Aetag"
+>etag</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Aqetag"
+>qetag</A
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Aqattr"
+>qattr</A
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atxt"
+>txt</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Acmt"
+>cmt</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Aspi"
+>spi</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Acdata"
+>cdata</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Adtd"
+>dtd</A
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Aerr"
+>err</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3Afatal"
+>fatal</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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%3AhasOption"
+>hasOption</A
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisRoot"
+></A
+><B
+>isRoot</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isRoot"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisTag"
+></A
+><B
+>isTag</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isTag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisNsTag"
+></A
+><B
+>isNsTag</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isNsTag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasLocalPart"
+></A
+><B
+>hasLocalPart</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasLocalPart"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasPrefix"
+></A
+><B
+>hasPrefix</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasPrefix"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasNamespace"
+></A
+><B
+>hasNamespace</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasNamespace"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisOfTag"
+></A
+><B
+>isOfTag</B
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
+>TagName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isOfTag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasAttr"
+></A
+><B
+>hasAttr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasNsAttr"
+></A
+><B
+>hasNsAttr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasNsAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasValue"
+></A
+><B
+>hasValue</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisPi"
+></A
+><B
+>isPi</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXmlPi"
+></A
+><B
+>isXmlPi</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXmlPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisOfPi"
+></A
+><B
+>isOfPi</B
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
+>TagName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isOfPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXCdata"
+></A
+><B
+>isXCdata</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXCdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXCharRef"
+></A
+><B
+>isXCharRef</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXCharRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXCmt"
+></A
+><B
+>isXCmt</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXDTD"
+></A
+><B
+>isXDTD</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXDTD"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXEntityRef"
+></A
+><B
+>isXEntityRef</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXEntityRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXError"
+></A
+><B
+>isXError</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXError"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXPi"
+></A
+><B
+>isXPi</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXTag"
+></A
+><B
+>isXTag</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXTag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXAttr"
+></A
+><B
+>isXAttr</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisAttr"
+></A
+><B
+>isAttr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisNsAttr"
+></A
+><B
+>isNsAttr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isNsAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisOfAttr"
+></A
+><B
+>isOfAttr</B
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
+>AttrName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isOfAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>general test for an attribute name
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisXText"
+></A
+><B
+>isXText</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isXText"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisText"
+></A
+><B
+>isText</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isText"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisOfText"
+></A
+><B
+>isOfText</B
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>Bool</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isOfText"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisWhiteSpace"
+></A
+><B
+>isWhiteSpace</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isWhiteSpace"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDoctype"
+></A
+><B
+>isDoctype</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isDoctype"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisAttlist"
+></A
+><B
+>isAttlist</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isAttlist"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisElement"
+></A
+><B
+>isElement</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isElement"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisEntity"
+></A
+><B
+>isEntity</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isEntity"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisPeRef"
+></A
+><B
+>isPeRef</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isPeRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDTDName"
+></A
+><B
+>isDTDName</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isDTDName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisCondSect"
+></A
+><B
+>isCondSect</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isCondSect"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisParameterEntity"
+></A
+><B
+>isParameterEntity</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isParameterEntity"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisNotation"
+></A
+><B
+>isNotation</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isNotation"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisDefaultAttrKind"
+></A
+><B
+>isDefaultAttrKind</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisEnumAttrType"
+></A
+><B
+>isEnumAttrType</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisFixedAttrKind"
+></A
+><B
+>isFixedAttrKind</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisIdAttrType"
+></A
+><B
+>isIdAttrType</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisRequiredAttrKind"
+></A
+><B
+>isRequiredAttrKind</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisAttlistParameterEntity"
+></A
+><B
+>isAttlistParameterEntity</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isAttlistParameterEntity"
+>Source</A
+></TD
+></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-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisMixedContentElement"
+></A
+><B
+>isMixedContentElement</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisElemWithContent"
+></A
+><B
+>isElemWithContent</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isElemWithContent"
+>Source</A
+></TD
+></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="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisElemContentParamEntity"
+></A
+><B
+>isElemContentParamEntity</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isElemContentParamEntity"
+>Source</A
+></TD
+></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-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.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%3AisExternalParameterEntity"
+></A
+><B
+>isExternalParameterEntity</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isExternalParameterEntity"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisInternalParameterEntity"
+></A
+><B
+>isInternalParameterEntity</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isInternalParameterEntity"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisWarning"
+></A
+><B
+>isWarning</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isWarning"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisError"
+></A
+><B
+>isError</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isError"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AisFatalError"
+></A
+><B
+>isFatalError</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#isFatalError"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXTag"
+></A
+><B
+>mkXTag</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXTag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkQTag"
+></A
+><B
+>mkQTag</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkQTag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXNsTag"
+></A
+><B
+>mkXNsTag</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXNsTag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXAttr"
+></A
+><B
+>mkXAttr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkQAttr"
+></A
+><B
+>mkQAttr</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkQAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXNsAttr"
+></A
+><B
+>mkXNsAttr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXNsAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXText"
+></A
+><B
+>mkXText</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXText"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXCharRef"
+></A
+><B
+>mkXCharRef</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXCharRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXEntityRef"
+></A
+><B
+>mkXEntityRef</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXEntityRef"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXDTD"
+></A
+><B
+>mkXDTD</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXDTD"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXCdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXPi"
+></A
+><B
+>mkXPi</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXPi"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkXError"
+></A
+><B
+>mkXError</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#mkXError"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetName"
+></A
+><B
+>getName</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetAttrl"
+></A
+><B
+>getAttrl</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>filter for selecting the attibute list
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetValue"
+></A
+><B
+>getValue</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetNsValue"
+></A
+><B
+>getNsValue</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getNsValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetDTDValue"
+></A
+><B
+>getDTDValue</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getDTDValue"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetXCmt"
+></A
+><B
+>getXCmt</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getXCmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AgetXCdata"
+></A
+><B
+>getXCdata</B
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#getXCdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AreplaceQName"
+></A
+><B
+>replaceQName</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#replaceQName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmodifyText"
+></A
+><B
+>modifyText</B
+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#modifyText"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#modifyQName"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#processAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#processAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AreplaceAttrl"
+></A
+><B
+>replaceAttrl</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#replaceAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Adel1Attr"
+></A
+><B
+>del1Attr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#del1Attr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aadd1Attr"
+></A
+><B
+>add1Attr</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#add1Attr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#addAttrl"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AaddAttr"
+></A
+><B
+>addAttr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#addAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AaddAttrInt"
+></A
+><B
+>addAttrInt</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#addAttrInt"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmodifyAttr"
+></A
+><B
+>modifyAttr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#modifyAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AaddDTDAttr"
+></A
+><B
+>addDTDAttr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#addDTDAttr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#%2B%3D"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#%2B%2B%3D"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AvalueOf"
+></A
+><B
+>valueOf</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#valueOf"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AintValueOf"
+></A
+><B
+>intValueOf</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#intValueOf"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Atag"
+></A
+><B
+>tag</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#tag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Astag"
+></A
+><B
+>stag</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#stag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aatag"
+></A
+><B
+>atag</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#atag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aetag"
+></A
+><B
+>etag</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#etag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aqetag"
+></A
+><B
+>qetag</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#qetag"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Qualified version of etag
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aqtag"
+></A
+><B
+>qtag</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#qtag"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Alias for mkQTag
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#rootTag"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aattr"
+></A
+><B
+>attr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#attr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aqattr"
+></A
+><B
+>qattr</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#qattr"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Alias for mkQAttr
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Asattr"
+></A
+><B
+>sattr</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#sattr"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Atxt"
+></A
+><B
+>txt</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#txt"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Acmt"
+></A
+><B
+>cmt</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#cmt"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aspi"
+></A
+><B
+>spi</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#spi"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Acdata"
+></A
+><B
+>cdata</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#cdata"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Adtd"
+></A
+><B
+>dtd</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#dtd"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Awarn"
+></A
+><B
+>warn</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#warn"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Aerr"
+></A
+><B
+>err</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#err"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Afatal"
+></A
+><B
+>fatal</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#fatal"
+>Source</A
+></TD
+></TR
+></TABLE
+></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="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AhasOption"
+></A
+><B
+>hasOption</B
+> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFilter.html#hasOption"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeFunctions.html b/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeFunctions.html
--- a/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeFunctions.html
+++ b/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeFunctions.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html"
 >Source code</A
@@ -102,7 +102,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXCdataNode"
 >isXCdataNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -114,7 +116,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXCharRefNode"
 >isXCharRefNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -126,7 +130,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXCmtNode"
 >isXCmtNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -138,7 +144,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXDTDNode"
 >isXDTDNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -150,7 +158,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXAttrNode"
 >isXAttrNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -162,7 +172,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXEntityRefNode"
 >isXEntityRefNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -174,7 +186,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXErrorNode"
 >isXErrorNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -186,7 +200,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXPiNode"
 >isXPiNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -198,7 +214,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXTagNode"
 >isXTagNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -210,7 +228,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisXTextNode"
 >isXTextNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -222,7 +242,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisRootNode"
 >isRootNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -236,7 +258,9 @@
 >isTagNode</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -248,9 +272,13 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisOfTagNode"
 >isOfTagNode</A
-> :: (TagName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
+>TagName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
->) -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -264,7 +292,9 @@
 >isAttrNode</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -276,9 +306,13 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisOfAttrNode"
 >isOfAttrNode</A
-> :: (AttrName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
+>AttrName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
->) -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -292,7 +326,9 @@
 >isTextNode</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -308,7 +344,9 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
->) -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -322,7 +360,9 @@
 >isPiNode</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -334,9 +374,13 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisOfPiNode"
 >isOfPiNode</A
-> :: (TagName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
+>TagName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
->) -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -348,7 +392,11 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AisDTDElemNode"
 >isDTDElemNode</A
-> :: DTDElem -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -362,7 +410,9 @@
 >isErrorNode</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -374,7 +424,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtextOfXNode"
 >textOfXNode</A
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -388,7 +440,13 @@
 >mkXTagTree</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -398,7 +456,15 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQTagTree"
 >mkQTagTree</A
-> :: QName -&gt; XmlTrees -&gt; XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -412,7 +478,13 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -422,7 +494,11 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AnewRoot"
 >newRoot</A
-> :: XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -432,7 +508,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AemptyRoot"
 >emptyRoot</A
-> :: XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -444,7 +522,9 @@
 >newDocument</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -454,7 +534,11 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AnewDocument%27"
 >newDocument'</A
-> :: Attributes -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -464,7 +548,13 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkRootTree"
 >mkRootTree</A
-> :: XmlTrees -&gt; XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -476,7 +566,9 @@
 >mkXTextTree</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -488,7 +580,9 @@
 >mkXCharRefTree</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -500,7 +594,9 @@
 >mkXEntityRefTree</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -512,7 +608,9 @@
 >mkXCmtTree</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -522,7 +620,15 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkXDTDTree"
 >mkXDTDTree</A
-> :: DTDElem -&gt; Attributes -&gt; XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -534,7 +640,11 @@
 >mkXAttrTree</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -544,7 +654,13 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkQAttrTree"
 >mkQAttrTree</A
-> :: QName -&gt; XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -558,7 +674,11 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -570,7 +690,9 @@
 >mkXPERefTree</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -584,7 +706,9 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -594,7 +718,11 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AmkXmlDeclTree"
 >mkXmlDeclTree</A
-> :: XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -606,7 +734,9 @@
 >mkXCdataTree</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -620,7 +750,11 @@
 >Int</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -634,7 +768,9 @@
 >Maybe</A
 > <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -644,7 +780,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AshowXText"
 >showXText</A
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -656,7 +794,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AshowXCharRef"
 >showXCharRef</A
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -668,7 +808,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AshowXEntityRef"
 >showXEntityRef</A
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -680,7 +822,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AshowXErrors"
 >showXErrors</A
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -692,7 +836,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AxmlTreesToString"
 >xmlTreesToString</A
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -704,7 +850,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AxmlTreesToText"
 >xmlTreesToText</A
-> :: XmlSFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
+>XmlSFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -714,7 +862,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AxmlContentModelToString"
 >xmlContentModelToString</A
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -726,7 +876,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AnameOf"
 >nameOf</A
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -738,7 +890,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AlocalPartOf"
 >localPartOf</A
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -750,7 +904,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AnamespaceOf"
 >namespaceOf</A
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -762,7 +918,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AprefixOf"
 >prefixOf</A
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -774,7 +932,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AuniversalNameOf"
 >universalNameOf</A
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -786,7 +946,11 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AattrlOfDTD"
 >attrlOfDTD</A
-> :: XmlTree -&gt; Attributes</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -798,7 +962,9 @@
 >valueOfDTD</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ></TR
@@ -814,7 +980,9 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ></TR
@@ -828,7 +996,9 @@
 >xcmt</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -840,7 +1010,9 @@
 >xerr</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -852,7 +1024,9 @@
 >xwarn</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -864,7 +1038,9 @@
 >xtext</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -876,7 +1052,13 @@
 >xtag</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTrees -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -890,7 +1072,9 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -900,9 +1084,15 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtoTreel"
 >toTreel</A
-> :: XmlTrees -&gt; AssocList <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> XmlTrees</TD
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -912,7 +1102,11 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AtoAttrl"
 >toAttrl</A
-> :: XmlTrees -&gt; Attributes</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -922,9 +1116,15 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AfromTreel"
 >fromTreel</A
-> :: AssocList <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> XmlTrees -&gt; XmlTrees</TD
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -934,7 +1134,11 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AfromAttrl"
 >fromAttrl</A
-> :: Attributes -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -960,7 +1164,9 @@
 ></A
 ><B
 >isXCdataNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -984,7 +1190,9 @@
 ></A
 ><B
 >isXCharRefNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1008,7 +1216,9 @@
 ></A
 ><B
 >isXCmtNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1032,7 +1242,9 @@
 ></A
 ><B
 >isXDTDNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1056,7 +1268,9 @@
 ></A
 ><B
 >isXAttrNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1080,7 +1294,9 @@
 ></A
 ><B
 >isXEntityRefNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1104,7 +1320,9 @@
 ></A
 ><B
 >isXErrorNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1128,7 +1346,9 @@
 ></A
 ><B
 >isXPiNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1152,7 +1372,9 @@
 ></A
 ><B
 >isXTagNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1176,7 +1398,9 @@
 ></A
 ><B
 >isXTextNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1200,7 +1424,9 @@
 ></A
 ><B
 >isRootNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1226,7 +1452,9 @@
 >isTagNode</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1250,9 +1478,13 @@
 ></A
 ><B
 >isOfTagNode</B
-> :: (TagName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
+>TagName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
->) -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1278,7 +1510,9 @@
 >isAttrNode</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1302,9 +1536,13 @@
 ></A
 ><B
 >isOfAttrNode</B
-> :: (AttrName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"
+>AttrName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
->) -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1330,7 +1568,9 @@
 >isTextNode</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1358,7 +1598,9 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
->) -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1384,7 +1626,9 @@
 >isPiNode</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1408,9 +1652,13 @@
 ></A
 ><B
 >isOfPiNode</B
-> :: (TagName -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: (<A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"
+>TagName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
->) -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1434,7 +1682,11 @@
 ></A
 ><B
 >isDTDElemNode</B
-> :: DTDElem -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1460,7 +1712,9 @@
 >isErrorNode</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
-> -&gt; XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -1484,7 +1738,9 @@
 ></A
 ><B
 >textOfXNode</B
-> :: XNode -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -1510,7 +1766,13 @@
 >mkXTagTree</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXTagTree"
 >Source</A
@@ -1553,7 +1815,15 @@
 ></A
 ><B
 >mkQTagTree</B
-> :: QName -&gt; XmlTrees -&gt; XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkQTagTree"
 >Source</A
@@ -1588,7 +1858,13 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXNsTagTree"
 >Source</A
@@ -1641,7 +1917,11 @@
 ></A
 ><B
 >newRoot</B
-> :: XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#newRoot"
 >Source</A
@@ -1686,7 +1966,9 @@
 ></A
 ><B
 >emptyRoot</B
-> :: XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#emptyRoot"
 >Source</A
@@ -1724,7 +2006,9 @@
 >newDocument</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#newDocument"
 >Source</A
@@ -1751,7 +2035,11 @@
 ></A
 ><B
 >newDocument'</B
-> :: Attributes -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#newDocument%27"
 >Source</A
@@ -1787,7 +2075,13 @@
 ></A
 ><B
 >mkRootTree</B
-> :: XmlTrees -&gt; XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkRootTree"
 >Source</A
@@ -1830,7 +2124,9 @@
 >mkXTextTree</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXTextTree"
 >Source</A
@@ -1869,7 +2165,9 @@
 >mkXCharRefTree</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXCharRefTree"
 >Source</A
@@ -1908,7 +2206,9 @@
 >mkXEntityRefTree</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXEntityRefTree"
 >Source</A
@@ -1947,7 +2247,9 @@
 >mkXCmtTree</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXCmtTree"
 >Source</A
@@ -1984,7 +2286,15 @@
 ></A
 ><B
 >mkXDTDTree</B
-> :: DTDElem -&gt; Attributes -&gt; XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3ADTDElem"
+>DTDElem</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXDTDTree"
 >Source</A
@@ -2029,7 +2339,11 @@
 >mkXAttrTree</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXAttrTree"
 >Source</A
@@ -2066,7 +2380,13 @@
 ></A
 ><B
 >mkQAttrTree</B
-> :: QName -&gt; XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkQAttrTree"
 >Source</A
@@ -2101,7 +2421,11 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXNsAttrTree"
 >Source</A
@@ -2154,7 +2478,9 @@
 >mkXPERefTree</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXPERefTree"
 >Source</A
@@ -2195,7 +2521,9 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXPiTree"
 >Source</A
@@ -2239,7 +2567,11 @@
 ></A
 ><B
 >mkXmlDeclTree</B
-> :: XmlTrees -&gt; XmlTree</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXmlDeclTree"
 >Source</A
@@ -2268,7 +2600,9 @@
 >mkXCdataTree</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXCdataTree"
 >Source</A
@@ -2309,7 +2643,11 @@
 >Int</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTree</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#mkXErrorTree"
 >Source</A
@@ -2353,7 +2691,9 @@
 >Maybe</A
 > <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#maybeString2XText"
 >Source</A
@@ -2375,7 +2715,9 @@
 ></A
 ><B
 >showXText</B
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2399,7 +2741,9 @@
 ></A
 ><B
 >showXCharRef</B
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2423,7 +2767,9 @@
 ></A
 ><B
 >showXEntityRef</B
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2447,7 +2793,9 @@
 ></A
 ><B
 >showXErrors</B
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2471,7 +2819,9 @@
 ></A
 ><B
 >xmlTreesToString</B
-> :: XmlTrees -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2485,7 +2835,9 @@
 ><TR
 ><TD CLASS="doc"
 >old name for <TT
->xshow</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-ShowXml.html#v%3Axshow"
+>xshow</A
+></TT
 > (deprecated)
 </TD
 ></TR
@@ -2502,7 +2854,9 @@
 ></A
 ><B
 >xmlTreesToText</B
-> :: XmlSFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"
+>XmlSFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#xmlTreesToText"
 >Source</A
@@ -2518,7 +2872,9 @@
 </P
 ><P
 >see also : <TT
->xshow</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-ShowXml.html#v%3Axshow"
+>xshow</A
+></TT
 >
 </P
 ></TD
@@ -2536,7 +2892,9 @@
 ></A
 ><B
 >xmlContentModelToString</B
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2560,7 +2918,9 @@
 ></A
 ><B
 >nameOf</B
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2590,7 +2950,9 @@
 ></A
 ><B
 >localPartOf</B
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2620,7 +2982,9 @@
 ></A
 ><B
 >namespaceOf</B
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2654,7 +3018,9 @@
 ></A
 ><B
 >prefixOf</B
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2692,7 +3058,9 @@
 ></A
 ><B
 >universalNameOf</B
-> :: XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2730,7 +3098,11 @@
 ></A
 ><B
 >attrlOfDTD</B
-> :: XmlTree -&gt; Attributes</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#attrlOfDTD"
 >Source</A
@@ -2759,7 +3131,9 @@
 >valueOfDTD</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 ></TD
 ><TD CLASS="declbut"
@@ -2792,7 +3166,9 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
 >Bool</A
 ></TD
 ><TD CLASS="declbut"
@@ -2823,7 +3199,9 @@
 >xcmt</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#xcmt"
 >Source</A
@@ -2847,7 +3225,9 @@
 >xerr</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#xerr"
 >Source</A
@@ -2871,7 +3251,9 @@
 >xwarn</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#xwarn"
 >Source</A
@@ -2895,7 +3277,9 @@
 >xtext</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#xtext"
 >Source</A
@@ -2919,7 +3303,13 @@
 >xtag</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; XmlTrees -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#xtag"
 >Source</A
@@ -2945,7 +3335,9 @@
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees</TD
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#xattr"
 >Source</A
@@ -2967,9 +3359,15 @@
 ></A
 ><B
 >toTreel</B
-> :: XmlTrees -&gt; AssocList <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> XmlTrees</TD
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#toTreel"
 >Source</A
@@ -2991,7 +3389,11 @@
 ></A
 ><B
 >toAttrl</B
-> :: XmlTrees -&gt; Attributes</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#toAttrl"
 >Source</A
@@ -3013,9 +3415,15 @@
 ></A
 ><B
 >fromTreel</B
-> :: AssocList <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-AssocList.html#t%3AAssocList"
+>AssocList</A
+> <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> XmlTrees -&gt; XmlTrees</TD
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#fromTreel"
 >Source</A
@@ -3037,7 +3445,11 @@
 ></A
 ><B
 >fromAttrl</B
-> :: Attributes -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-DOM-XmlTreeFunctions.html#fromAttrl"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeTypes.html b/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeTypes.html
new file mode 100644
--- /dev/null
+++ b/doc/hxt-filter/Text-XML-HXT-DOM-XmlTreeTypes.html
@@ -0,0 +1,690 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Text.XML.HXT.DOM.XmlTreeTypes</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+><TD CLASS="topbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Text.XML.HXT.DOM.XmlTreeTypes</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>exports the core data types
+ and some additional types and functions
+ for compatibility with none arrow modules
+</P
+><P
+>Version : $Id: XmlTreeTypes.hs,v 1.6 2006<EM
+>05</EM
+>09 15:30:43 hxml Exp $
+</P
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>module <A HREF="Data-Tree-NTree-Filter.html"
+>Data.Tree.NTree.Filter</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AmkNode"
+>mkNode</A
+> ::  node -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>NTrees</A
+> node -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AformatNTree"
+>formatNTree</A
+> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AfoldNTree"
+>foldNTree</A
+> ::  (a -&gt; [b] -&gt; b) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> a -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AcardNTree"
+>cardNTree</A
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A HREF="#t%3AXmlFilter"
+>XmlFilter</A
+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/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="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AaName"
+>aName</A
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Data-Tree-NTree-Filter.html"
+>Data.Tree.NTree.Filter</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmkNode"
+></A
+><B
+>mkNode</B
+> ::  node -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTrees"
+>NTrees</A
+> node -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#mkNode"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AformatNTree"
+></A
+><B
+>formatNTree</B
+> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+>) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#formatNTree"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AfoldNTree"
+></A
+><B
+>foldNTree</B
+> ::  (a -&gt; [b] -&gt; b) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> a -&gt; b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#foldNTree"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AmapNTree"
+></A
+><B
+>mapNTree</B
+> ::  (a -&gt; b) -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> a -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> b</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#mapNTree"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AnTreeToList"
+></A
+><B
+>nTreeToList</B
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> a -&gt; [a]</TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#nTreeToList"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AdepthNTree"
+></A
+><B
+>depthNTree</B
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#depthNTree"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AcardNTree"
+></A
+><B
+>cardNTree</B
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Data-Tree-NTree-TypeDefs.html#t%3ANTree"
+>NTree</A
+> a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+>Int</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#cardNTree"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3AXmlFilter"
+></A
+><B
+>XmlFilter</B
+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>TFilter</A
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#XmlFilter"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>A functions that takes a node and returns a list of nodes
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3AXmlSFilter"
+></A
+><B
+>XmlSFilter</B
+> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
+>TSFilter</A
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"
+>XNode</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#XmlSFilter"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>A function that takes a list of nodes and returns a list of nodes
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3ATagName"
+></A
+><B
+>TagName</B
+> = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#TagName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Tag name
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>type</SPAN
+> <A NAME="t%3AAttrName"
+></A
+><B
+>AttrName</B
+> = <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#AttrName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>Attribute name
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AtName"
+></A
+><B
+>tName</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#tName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>shortcut for <TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
+>qualifiedName</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AaName"
+></A
+><B
+>aName</B
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"
+>QName</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+>String</A
+></TD
+><TD CLASS="declbut"
+><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#aName"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+>shortcut for <TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"
+>qualifiedName</A
+></TT
+>
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 2.3.0</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/doc/hxt-filter/Text-XML-HXT-DOM.html b/doc/hxt-filter/Text-XML-HXT-DOM.html
--- a/doc/hxt-filter/Text-XML-HXT-DOM.html
+++ b/doc/hxt-filter/Text-XML-HXT-DOM.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-DOM.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-DTDProcessing.html b/doc/hxt-filter/Text-XML-HXT-Parser-DTDProcessing.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-DTDProcessing.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-DTDProcessing.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-DTDProcessing.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-DefaultURI.html b/doc/hxt-filter/Text-XML-HXT-Parser-DefaultURI.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-DefaultURI.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-DefaultURI.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-DefaultURI.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-HtmlParser.html b/doc/hxt-filter/Text-XML-HXT-Parser-HtmlParser.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-HtmlParser.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-HtmlParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-HtmlParser.html"
 >Source code</A
@@ -146,7 +146,11 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsubstHtmlEntities"
 >substHtmlEntities</A
-> :: XmlTree -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -305,7 +309,11 @@
 ></A
 ><B
 >substHtmlEntities</B
-> :: XmlTree -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Parser-HtmlParser.html#substHtmlEntities"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-MainFunctions.html b/doc/hxt-filter/Text-XML-HXT-Parser-MainFunctions.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-MainFunctions.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-MainFunctions.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-MainFunctions.html"
 >Source code</A
@@ -87,11 +87,17 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetXmlDocument"
 >getXmlDocument</A
-> :: Attributes -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"
 >IO</A
-> (XmlTree, XmlTrees, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+> (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>, <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
 >)</TD
 ></TR
@@ -103,11 +109,17 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AputXmlDocument"
 >putXmlDocument</A
-> :: Attributes -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"
 >IO</A
-> (XmlTrees, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+> (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
 >)</TD
 ></TR
@@ -119,7 +131,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AparseDocument"
 >parseDocument</A
-> ::  Attributes -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
@@ -131,7 +145,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AwriteDocument"
 >writeDocument</A
-> ::  Attributes -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
@@ -159,11 +175,17 @@
 ></A
 ><B
 >getXmlDocument</B
-> :: Attributes -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"
 >IO</A
-> (XmlTree, XmlTrees, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+> (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+>, <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
 >)</TD
 ><TD CLASS="declbut"
@@ -201,13 +223,21 @@
 </LI
 ><LI
 > the error level: one of <TT
->c_ok</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_ok"
+>c_ok</A
+></TT
 >, <TT
->c_warn</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_warn"
+>c_warn</A
+></TT
 >, <TT
->c_err</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_err"
+>c_err</A
+></TT
 >, <TT
->c_fatal</TT
+><A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#v%3Ac_fatal"
+>c_fatal</A
+></TT
 >
 </LI
 ></UL
@@ -259,11 +289,17 @@
 ></A
 ><B
 >putXmlDocument</B
-> :: Attributes -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"
+>Attributes</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"
 >IO</A
-> (XmlTrees, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
+> (<A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+>, <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"
 >Int</A
 >)</TD
 ><TD CLASS="declbut"
@@ -343,7 +379,9 @@
 ></A
 ><B
 >parseDocument</B
-> ::  Attributes -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
 ><TD CLASS="declbut"
@@ -522,7 +560,9 @@
 ></A
 ><B
 >writeDocument</B
-> ::  Attributes -&gt; <A HREF="Text-XML-HXT-DOM-XmlState.html#t%3AXmlStateFilter"
+> ::  <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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
 ><TD CLASS="declbut"
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandler.html b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandler.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandler.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandler.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-ProtocolHandler.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerFile.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerFile.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerHttpCurl.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-ProtocolHandlerHttpNativeOrCurl.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-XmlInput.html b/doc/hxt-filter/Text-XML-HXT-Parser-XmlInput.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-XmlInput.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-XmlInput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlInput.html"
 >Source code</A
@@ -107,7 +107,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetContentLength"
 >getContentLength</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -344,7 +346,9 @@
 ></A
 ><B
 >getContentLength</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlInput.html#getContentLength"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-XmlOutput.html b/doc/hxt-filter/Text-XML-HXT-Parser-XmlOutput.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-XmlOutput.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-XmlOutput.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlOutput.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser-XmlParser.html b/doc/hxt-filter/Text-XML-HXT-Parser-XmlParser.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser-XmlParser.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser-XmlParser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlParser.html"
 >Source code</A
@@ -92,7 +92,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AsubstXmlEntities"
 >substXmlEntities</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -149,7 +151,9 @@
 ></A
 ><B
 >substXmlEntities</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Parser-XmlParser.html#substXmlEntities"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Parser.html b/doc/hxt-filter/Text-XML-HXT-Parser.html
--- a/doc/hxt-filter/Text-XML-HXT-Parser.html
+++ b/doc/hxt-filter/Text-XML-HXT-Parser.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Parser.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Validator-AttributeValueValidation.html b/doc/hxt-filter/Text-XML-HXT-Validator-AttributeValueValidation.html
--- a/doc/hxt-filter/Text-XML-HXT-Validator-AttributeValueValidation.html
+++ b/doc/hxt-filter/Text-XML-HXT-Validator-AttributeValueValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Validator-AttributeValueValidation.html"
 >Source code</A
@@ -80,7 +80,13 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AcheckAttributeValue"
 >checkAttributeValue</A
-> :: XmlTrees -&gt; XmlTree -&gt; XmlFilter</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/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"
@@ -92,7 +98,9 @@
 >normalizeAttributeValue</A
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
 >Maybe</A
-> XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
@@ -122,7 +130,13 @@
 ></A
 ><B
 >checkAttributeValue</B
-> :: XmlTrees -&gt; XmlTree -&gt; XmlFilter</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-AttributeValueValidation.html#checkAttributeValue"
 >Source</A
@@ -168,7 +182,9 @@
 >normalizeAttributeValue</B
 > :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
 >Maybe</A
-> XmlTree -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
+> <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
 > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Validator-DTDValidation.html b/doc/hxt-filter/Text-XML-HXT-Validator-DTDValidation.html
--- a/doc/hxt-filter/Text-XML-HXT-Validator-DTDValidation.html
+++ b/doc/hxt-filter/Text-XML-HXT-Validator-DTDValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Validator-DTDValidation.html"
 >Source code</A
@@ -81,7 +81,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveDoublicateDefs"
 >removeDoublicateDefs</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -91,7 +93,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDTD"
 >validateDTD</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -117,7 +121,9 @@
 ></A
 ><B
 >removeDoublicateDefs</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-DTDValidation.html#removeDoublicateDefs"
 >Source</A
@@ -153,7 +159,9 @@
 ></A
 ><B
 >validateDTD</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-DTDValidation.html#validateDTD"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Validator-DocTransformation.html b/doc/hxt-filter/Text-XML-HXT-Validator-DocTransformation.html
--- a/doc/hxt-filter/Text-XML-HXT-Validator-DocTransformation.html
+++ b/doc/hxt-filter/Text-XML-HXT-Validator-DocTransformation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Validator-DocTransformation.html"
 >Source code</A
@@ -81,7 +81,13 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Atransform"
 >transform</A
-> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -107,7 +113,13 @@
 ></A
 ><B
 >transform</B
-> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-DocTransformation.html#transform"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Validator-DocValidation.html b/doc/hxt-filter/Text-XML-HXT-Validator-DocValidation.html
--- a/doc/hxt-filter/Text-XML-HXT-Validator-DocValidation.html
+++ b/doc/hxt-filter/Text-XML-HXT-Validator-DocValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Validator-DocValidation.html"
 >Source code</A
@@ -81,7 +81,13 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDoc"
 >validateDoc</A
-> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -107,7 +113,13 @@
 ></A
 ><B
 >validateDoc</B
-> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-DocValidation.html#validateDoc"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Validator-IdValidation.html b/doc/hxt-filter/Text-XML-HXT-Validator-IdValidation.html
--- a/doc/hxt-filter/Text-XML-HXT-Validator-IdValidation.html
+++ b/doc/hxt-filter/Text-XML-HXT-Validator-IdValidation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Validator-IdValidation.html"
 >Source code</A
@@ -82,7 +82,13 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateIds"
 >validateIds</A
-> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -108,7 +114,13 @@
 ></A
 ><B
 >validateIds</B
-> :: XmlTree -&gt; XmlTree -&gt; XmlTrees</TD
+> :: <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
+>XmlTree</A
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-IdValidation.html#validateIds"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Validator-RE.html b/doc/hxt-filter/Text-XML-HXT-Validator-RE.html
--- a/doc/hxt-filter/Text-XML-HXT-Validator-RE.html
+++ b/doc/hxt-filter/Text-XML-HXT-Validator-RE.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Validator-RE.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Validator-Validation.html b/doc/hxt-filter/Text-XML-HXT-Validator-Validation.html
--- a/doc/hxt-filter/Text-XML-HXT-Validator-Validation.html
+++ b/doc/hxt-filter/Text-XML-HXT-Validator-Validation.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Validator-Validation.html"
 >Source code</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Validator-ValidationFilter.html b/doc/hxt-filter/Text-XML-HXT-Validator-ValidationFilter.html
--- a/doc/hxt-filter/Text-XML-HXT-Validator-ValidationFilter.html
+++ b/doc/hxt-filter/Text-XML-HXT-Validator-ValidationFilter.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html"
 >Source code</A
@@ -81,7 +81,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AgetDTDSubset"
 >getDTDSubset</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -91,7 +93,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Avalidate"
 >validate</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -101,7 +105,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDTD"
 >validateDTD</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -111,7 +117,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AvalidateDoc"
 >validateDoc</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -121,7 +129,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3AremoveDoublicateDefs"
 >removeDoublicateDefs</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -131,7 +141,9 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Atransform"
 >transform</A
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ></TR
 ></TABLE
 ></TD
@@ -157,7 +169,9 @@
 ></A
 ><B
 >getDTDSubset</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#getDTDSubset"
 >Source</A
@@ -179,7 +193,9 @@
 ></A
 ><B
 >validate</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#validate"
 >Source</A
@@ -214,7 +230,9 @@
 ></A
 ><B
 >validateDTD</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#validateDTD"
 >Source</A
@@ -249,7 +267,9 @@
 ></A
 ><B
 >validateDoc</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#validateDoc"
 >Source</A
@@ -284,7 +304,9 @@
 ></A
 ><B
 >removeDoublicateDefs</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#removeDoublicateDefs"
 >Source</A
@@ -320,7 +342,9 @@
 ></A
 ><B
 >transform</B
-> :: XmlFilter</TD
+> :: <A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"
+>XmlFilter</A
+></TD
 ><TD CLASS="declbut"
 ><A HREF="src/Text-XML-HXT-Validator-ValidationFilter.html#transform"
 >Source</A
diff --git a/doc/hxt-filter/Text-XML-HXT-Validator-XmlRE.html b/doc/hxt-filter/Text-XML-HXT-Validator-XmlRE.html
--- a/doc/hxt-filter/Text-XML-HXT-Validator-XmlRE.html
+++ b/doc/hxt-filter/Text-XML-HXT-Validator-XmlRE.html
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="src/Text-XML-HXT-Validator-XmlRE.html"
 >Source code</A
@@ -120,7 +120,9 @@
 >RE</A
 > <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
@@ -413,7 +415,9 @@
 >RE</A
 > <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
-> -&gt; XmlTrees -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
+> -&gt; <A HREF="/usr/local/share/doc/hxt-8.3.0/html/Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTrees"
+>XmlTrees</A
+> -&gt; <A HREF="Text-XML-HXT-Validator-XmlRE.html#t%3ARE"
 >RE</A
 > <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
 >String</A
diff --git a/doc/hxt-filter/doc-index.html b/doc/hxt-filter/doc-index.html
--- a/doc/hxt-filter/doc-index.html
+++ b/doc/hxt-filter/doc-index.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant). (Index)</TITLE
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant). (Index)</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
 ></SCRIPT
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -49,25 +49,33 @@
 ><TD CLASS="indexentry"
 >$$</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >$$&lt;</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24%3C"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >+++</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >+++&gt;&gt;</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -89,37 +97,49 @@
 ><TD CLASS="indexentry"
 >..&gt;</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A..%3E"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >.&gt;</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >.&gt;&gt;</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E%3E"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >/&gt;</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%2F%3E"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >:-&gt;</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%3A-%3E"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >&lt;/</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3A%3C%2F"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -165,13 +185,13 @@
 ><TD CLASS="indexentry"
 >addEntries</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >addEntry</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -213,7 +233,9 @@
 ><TD CLASS="indexentry"
 >aName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -225,7 +247,7 @@
 ><TD CLASS="indexentry"
 >AssocList</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -239,7 +261,7 @@
 ><TD CLASS="indexentry"
 >ATTLIST</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -253,7 +275,7 @@
 ><TD CLASS="indexentry"
 >Attributes</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -267,13 +289,15 @@
 ><TD CLASS="indexentry"
 >AttrName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
 >attrNodes</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -505,6 +529,12 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>a_no_empty_elements</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >a_no_xml_pi</TD
 ><TD CLASS="indexlinks"
 >Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
@@ -631,6 +661,12 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>a_strict_input</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >a_tagsoup</TD
 ><TD CLASS="indexlinks"
 >Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
@@ -717,7 +753,7 @@
 ><TD CLASS="indexentry"
 >buildUniversalName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -747,25 +783,31 @@
 ><TD CLASS="indexentry"
 >cardNTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
 >cardTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >cat</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >catM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -801,13 +843,13 @@
 ><TD CLASS="indexentry"
 >changeChildren</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >changeNode</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -915,25 +957,29 @@
 ><TD CLASS="indexentry"
 >ChildNodes</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >childNodes</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >choice</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >choiceM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -995,25 +1041,29 @@
 ><TD CLASS="indexentry"
 >CONDSECT</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >containing</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >containingM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >CONTENT</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1031,37 +1081,41 @@
 ><TD CLASS="indexentry"
 >c_err</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >c_fatal</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >c_ok</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >c_warn</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >deep</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Adeep"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >deepest</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Adeepest"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1075,31 +1129,33 @@
 ><TD CLASS="indexentry"
 >delEntries</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >delEntry</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >depthNTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
 >depthTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >DOCTYPE</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1137,13 +1193,13 @@
 ><TD CLASS="indexentry"
 >DTDElem</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >ELEMENT</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1181,7 +1237,7 @@
 ><TD CLASS="indexentry"
 >ENTITY</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1227,27 +1283,21 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
->equalQName</TD
-><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
-></TR
-><TR CLASS="indexrow"
-><TD CLASS="indexentry"
 >equalQNameBy</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >equivQName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >equivUri</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1341,31 +1391,35 @@
 ><TD CLASS="indexentry"
 >foldNTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
 >foldTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >formatNTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
 >formatNTreeF</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >formatTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1429,7 +1483,7 @@
 ><TD CLASS="indexentry"
 >getChildren</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1515,7 +1569,7 @@
 ><TD CLASS="indexentry"
 >getNode</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1691,13 +1745,17 @@
 ><TD CLASS="indexentry"
 >guards</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >guardsM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1719,7 +1777,7 @@
 ><TD CLASS="indexentry"
 >hasEntry</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1811,19 +1869,25 @@
 ><TD CLASS="indexentry"
 >iff</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >ifM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >IfThen</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1851,13 +1915,17 @@
 ><TD CLASS="indexentry"
 >insertChildrenAfter</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >insertChildrenAt</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -1939,7 +2007,7 @@
 ><TD CLASS="indexentry"
 >isDeclaredNamespace</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2087,7 +2155,7 @@
 ><TD CLASS="indexentry"
 >isInner</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2107,7 +2175,7 @@
 ><TD CLASS="indexentry"
 >isLeaf</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2127,9 +2195,15 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>isNameSpaceName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >isNCName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2165,6 +2239,12 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>isNullXName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >iso8859_1</TD
 ><TD CLASS="indexlinks"
 >Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
@@ -2257,7 +2337,9 @@
 ><TD CLASS="indexentry"
 >isOf</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2279,7 +2361,9 @@
 ><TD CLASS="indexentry"
 >isOfNode</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AisOfNode"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2487,21 +2571,27 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>isWellformedNameSpaceName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >isWellformedNSDecl</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >isWellformedQName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >isWellformedQualifiedName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2841,16 +2931,24 @@
 ><TD CLASS="indexentry"
 >liftMf</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AliftMf"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >localPart</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>localPart'</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >localPartOf</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AlocalPartOf"
@@ -2861,13 +2959,13 @@
 ><TD CLASS="indexentry"
 >lookup1</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >lookupDef</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2885,7 +2983,9 @@
 ><TD CLASS="indexentry"
 >mapNTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2931,7 +3031,7 @@
 ><TD CLASS="indexentry"
 >mkLeaf</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2943,31 +3043,35 @@
 ><TD CLASS="indexentry"
 >mkName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >mkNode</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
 >mkNsName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >mkNTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AmkNTree"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >mkPrefixLocalPart</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -2989,10 +3093,16 @@
 ><TD CLASS="indexentry"
 >mkQName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>mkQName'</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >mkQTag</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeFilter.html#v%3AmkQTag"
@@ -3019,13 +3129,13 @@
 ><TD CLASS="indexentry"
 >mkSNsName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >mkTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3247,19 +3357,25 @@
 ><TD CLASS="indexentry"
 >modifyChildren</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >modifyNode</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >modifyNode0</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode0"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3281,13 +3397,15 @@
 ><TD CLASS="indexentry"
 >multi</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Amulti"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >NAME</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3307,10 +3425,16 @@
 ><TD CLASS="indexentry"
 >namePrefix</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>namePrefix'</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >names</TD
 ><TD CLASS="indexlinks"
 >Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
@@ -3335,10 +3459,16 @@
 ><TD CLASS="indexentry"
 >namespaceUri</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>namespaceUri'</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >nameT</TD
 ><TD CLASS="indexlinks"
 >Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
@@ -3353,7 +3483,9 @@
 ><TD CLASS="indexentry"
 >neg</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3381,6 +3513,12 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>newXName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >nmtoken</TD
 ><TD CLASS="indexlinks"
 >Text.XML.HXT.Parser.XmlParser, Text.XML.HXT.Parser</TD
@@ -3401,19 +3539,23 @@
 ><TD CLASS="indexentry"
 >nodesTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >none</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >noneM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3427,25 +3569,27 @@
 ><TD CLASS="indexentry"
 >normalizeNsUri</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >NOTATION</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >notContaining</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >NsEnv</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -3453,27 +3597,29 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexannot"
->1 (Type/Class)</TD
+>1 (Data Constructor)</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexannot"
->2 (Data Constructor)</TD
+>2 (Type/Class)</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >NTrees</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >nTreeToList</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3485,9 +3631,9 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
->nullQName</TD
+>nullXName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3509,7 +3655,9 @@
 ><TD CLASS="indexentry"
 >o</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3529,7 +3677,9 @@
 ><TD CLASS="indexentry"
 >orElse</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3655,13 +3805,13 @@
 ><TD CLASS="indexentry"
 >PENTITY</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >PEREF</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3679,7 +3829,9 @@
 ><TD CLASS="indexentry"
 >performAction</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AperformAction"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3741,31 +3893,41 @@
 ><TD CLASS="indexentry"
 >processBottomUp</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >processBottomUpIfNot</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >processBottomUpM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >processChildren</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >processChildrenM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildrenM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3787,19 +3949,25 @@
 ><TD CLASS="indexentry"
 >processTopDown</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >processTopDownM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >processTopDownUntil</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownUntil"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3897,7 +4065,7 @@
 ><TD CLASS="indexentry"
 >QName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -3917,7 +4085,7 @@
 ><TD CLASS="indexentry"
 >qualifiedName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -4043,13 +4211,17 @@
 ><TD CLASS="indexentry"
 >replaceChildren</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceChildren"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >replaceNode</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceNode"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -4299,7 +4471,9 @@
 ><TD CLASS="indexentry"
 >satisfies</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Asatisfies"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -4337,13 +4511,17 @@
 ><TD CLASS="indexentry"
 >seqF</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AseqF"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >seqM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AseqM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -4357,7 +4535,7 @@
 ><TD CLASS="indexentry"
 >setChildren</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -4377,15 +4555,33 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>setLocalPart'</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>setNamePrefix'</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >setNamespace</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>setNamespaceUri'</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >setNode</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -4613,7 +4809,9 @@
 ><TD CLASS="indexentry"
 >substChildren</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -4701,7 +4899,9 @@
 ><TD CLASS="indexentry"
 >TagName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -4721,31 +4921,39 @@
 ><TD CLASS="indexentry"
 >TFilter</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >this</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >thisM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >thisNode</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >tName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -4757,6 +4965,12 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>toNsEnv</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >toTreel</TD
 ><TD CLASS="indexlinks"
 ><A HREF="Text-XML-HXT-DOM-XmlTreeFunctions.html#v%3AtoTreel"
@@ -4961,7 +5175,7 @@
 ><TD CLASS="indexentry"
 >Tree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Data.Tree.NTree.Filter, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -4975,7 +5189,9 @@
 ><TD CLASS="indexentry"
 >TSFilter</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5013,7 +5229,7 @@
 ><TD CLASS="indexentry"
 >universalName</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5027,7 +5243,7 @@
 ><TD CLASS="indexentry"
 >universalUri</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5283,25 +5499,33 @@
 ><TD CLASS="indexentry"
 >when</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >whenM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >whenNot</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >whenNotM</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"
+>Data.Tree.NTree.Filter</A
+>, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5315,7 +5539,7 @@
 ><TD CLASS="indexentry"
 >XAttr</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5329,19 +5553,19 @@
 ><TD CLASS="indexentry"
 >XCdata</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >XCharRef</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >XCmt</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5355,13 +5579,13 @@
 ><TD CLASS="indexentry"
 >XDTD</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >XEntityRef</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5375,7 +5599,7 @@
 ><TD CLASS="indexentry"
 >XError</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5401,7 +5625,9 @@
 ><TD CLASS="indexentry"
 >XmlFilter</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+><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 CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5411,9 +5637,15 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>xmlNamespaceXName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >XmlNodeSet</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5423,15 +5655,29 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>xmlnsNamespaceXName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >xmlnsQN</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.NamespaceFilter, Text.XML.HXT.DOM.Namespace, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>xmlnsXName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >XmlSFilter</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, 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
+>, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry" COLSPAN="2"
@@ -5465,13 +5711,13 @@
 ><TD CLASS="indexentry"
 >XmlTree</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >XmlTrees</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5491,21 +5737,33 @@
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
+>xmlXName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
+>XName</TD
+><TD CLASS="indexlinks"
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+></TR
+><TR CLASS="indexrow"
+><TD CLASS="indexentry"
 >XNode</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >XNS</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
 >XPi</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5531,7 +5789,7 @@
 ><TD CLASS="indexentry"
 >XTag</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
@@ -5545,7 +5803,7 @@
 ><TD CLASS="indexentry"
 >XText</TD
 ><TD CLASS="indexlinks"
->Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
+>Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlTree, Text.XML.HXT.DOM, Text.XML.HXT.Parser</TD
 ></TR
 ><TR CLASS="indexrow"
 ><TD CLASS="indexentry"
diff --git a/doc/hxt-filter/hxt-filter.haddock b/doc/hxt-filter/hxt-filter.haddock
Binary files a/doc/hxt-filter/hxt-filter.haddock and b/doc/hxt-filter/hxt-filter.haddock differ
diff --git a/doc/hxt-filter/index.html b/doc/hxt-filter/index.html
--- a/doc/hxt-filter/index.html
+++ b/doc/hxt-filter/index.html
@@ -4,7 +4,7 @@
 ><HEAD
 ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
 ><TITLE
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TITLE
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TITLE
 ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
 ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
 ></SCRIPT
@@ -19,7 +19,7 @@
 ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
 ></TD
 ><TD CLASS="title"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ><TD CLASS="topbut"
 ><A HREF="index.html"
 >Contents</A
@@ -34,7 +34,7 @@
 ></TR
 ><TR
 ><TD CLASS="section1"
->hxt-filter-8.2.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
+>hxt-filter-8.3.0: A collection of tools for processing XML with Haskell (Filter variant).</TD
 ></TR
 ><TR
 ><TD CLASS="doc"
@@ -91,7 +91,7 @@
 ><TR
 ><TD STYLE="width: 50em"
 ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"
->System</TD
+>Data</TD
 ><TD
 ></TD
 ><TD
@@ -101,6 +101,61 @@
 ><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="width: 48em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" 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:3" STYLE="display:block;"
+><TR
+><TD STYLE="width: 46em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" 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:4" 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
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD STYLE="width: 50em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:5')" 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:5" STYLE="display:block;"
+><TR
 ><TD STYLE="padding-left: 1.25em;width: 48em"
 ><A HREF="System-PipeOpen.html"
 >System.PipeOpen</A
@@ -115,7 +170,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 50em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:3')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:6')" ALT="show/hide"
 >Text</TD
 ><TD
 ></TD
@@ -124,10 +179,10 @@
 ></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:6" STYLE="display:block;"
 ><TR
 ><TD STYLE="width: 48em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:4')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:7')" ALT="show/hide"
 >XML</TD
 ><TD
 ></TD
@@ -136,10 +191,10 @@
 ></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:7" STYLE="display:block;"
 ><TR
 ><TD STYLE="width: 46em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:5')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" ALT="show/hide"
 >HXT</TD
 ><TD
 ></TD
@@ -148,10 +203,10 @@
 ></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:8" STYLE="display:block;"
 ><TR
 ><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:6')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:9')" ALT="show/hide"
 ><A HREF="Text-XML-HXT-DOM.html"
 >Text.XML.HXT.DOM</A
 ></TD
@@ -162,7 +217,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:9" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-DOM-EditFilters.html"
@@ -233,12 +288,22 @@
 ><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:7')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:10')" ALT="show/hide"
 ><A HREF="Text-XML-HXT-Parser.html"
 >Text.XML.HXT.Parser</A
 ></TD
@@ -249,7 +314,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:10" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-Parser-DTDProcessing.html"
@@ -375,7 +440,7 @@
 ></TR
 ><TR
 ><TD STYLE="width: 44em"
-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:8')" ALT="show/hide"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:11')" ALT="show/hide"
 >Validator</TD
 ><TD
 ></TD
@@ -384,7 +449,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:11" STYLE="display:block;"
 ><TR
 ><TD STYLE="padding-left: 1.25em;width: 42em"
 ><A HREF="Text-XML-HXT-Validator-AttributeValueValidation.html"
diff --git a/doc/hxt-filter/src/Data-Tree-NTree-Filter.html b/doc/hxt-filter/src/Data-Tree-NTree-Filter.html
new file mode 100644
--- /dev/null
+++ b/doc/hxt-filter/src/Data-Tree-NTree-Filter.html
@@ -0,0 +1,922 @@
+<!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  : stable
+<a name="line-10"></a>   Portability: portable
+<a name="line-11"></a>
+<a name="line-12"></a>   Filter for n-ary tree structure with filter combinators
+<a name="line-13"></a>   copied and modified from HaXml (&lt;<a href="http://www.cs.york.ac.uk/fp/HaXml/">http://www.cs.york.ac.uk/fp/HaXml/</a>&gt;)
+<a name="line-14"></a>
+<a name="line-15"></a>   Similar but more flexible functions for tree processing are defined in the
+<a name="line-16"></a>   arrow classes "Control.Arrow.ArrowList", "Control.Arrow.ArrowIf", "Control.Arrow.ArrowTree" and "Control.Arrow.ArrowState".
+<a name="line-17"></a>   For new applications, especially for XML processing, it's recommended to use the arrow interface
+<a name="line-18"></a>   "Text.XML.HXT.Arrow" instead of this filter approach as part of the api "Text.XML.HXT.Parser"
+<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'>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-25"></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-26"></a>    <span class='layout'>,</span> <span class='conid'>TFilter</span>
+<a name="line-27"></a>    <span class='layout'>,</span> <span class='conid'>TSFilter</span>
+<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>satisfies</span>
+<a name="line-29"></a>
+<a name="line-30"></a>    <span class='comment'>-- * Filter</span>
+<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>none</span>		<span class='comment'>-- simple filter</span>
+<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-33"></a>
+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>isOf</span>
+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>isOfNode</span>		<span class='comment'>-- predicate filter</span>
+<a name="line-36"></a>
+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>mkNTree</span>		<span class='comment'>-- contructor filter</span>
+<a name="line-38"></a>
+<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>replaceNode</span>	<span class='comment'>-- simple editing</span>
+<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>replaceChildren</span>
+<a name="line-41"></a>
+<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>modifyNode</span>
+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>modifyNode0</span>
+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>modifyChildren</span>
+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>substChildren</span>
+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>processChildren</span>	<span class='comment'>-- filter combinators</span>
+<a name="line-47"></a>
+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>o</span>
+<a name="line-49"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.&gt;</span><span class='layout'>)</span>
+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>seqF</span>
+<a name="line-51"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>..&gt;</span><span class='layout'>)</span>
+<a name="line-52"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>+++</span><span class='layout'>)</span>
+<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>cat</span>
+<a name="line-54"></a>
+<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>orElse</span>		<span class='comment'>-- choices</span>
+<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>iff</span>		<span class='comment'>-- if then else filter</span>
+<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>choice</span>
+<a name="line-58"></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-59"></a>    <span class='layout'>,</span> <span class='varid'>when</span>
+<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>whenNot</span>
+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>guards</span>
+<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>neg</span>		<span class='comment'>-- negation</span>
+<a name="line-63"></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-64"></a>    <span class='layout'>,</span> <span class='varid'>notContaining</span>	<span class='comment'>-- previous: without</span>
+<a name="line-65"></a>
+<a name="line-66"></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-67"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;/</span><span class='layout'>)</span>
+<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>deep</span>		<span class='comment'>-- recursive search</span>
+<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>deepest</span>
+<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>multi</span>
+<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>processBottomUp</span>	<span class='comment'>-- recursive editing</span>
+<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>processBottomUpIfNot</span>
+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>processTopDown</span>
+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>processTopDownUntil</span>
+<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>insertChildrenAt</span>
+<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>insertChildrenAfter</span>
+<a name="line-77"></a>
+<a name="line-78"></a>      <span class='comment'>-- * Monadic Filter</span>
+<a name="line-79"></a>    <span class='layout'>,</span> <span class='varid'>thisM</span>		<span class='comment'>-- monadic filter</span>
+<a name="line-80"></a>    <span class='layout'>,</span> <span class='varid'>noneM</span>
+<a name="line-81"></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-82"></a>    <span class='layout'>,</span> <span class='varid'>seqM</span>		<span class='comment'>-- generalisation of .&gt;&gt;</span>
+<a name="line-83"></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-84"></a>    <span class='layout'>,</span> <span class='varid'>catM</span>		<span class='comment'>-- monadic form of cat</span>
+<a name="line-85"></a>    <span class='layout'>,</span> <span class='varid'>ifM</span>		<span class='comment'>-- monadic if then else</span>
+<a name="line-86"></a>    <span class='layout'>,</span> <span class='varid'>choiceM</span>		<span class='comment'>-- monadic choice</span>
+<a name="line-87"></a>    <span class='layout'>,</span> <span class='varid'>whenM</span>		<span class='comment'>-- special monadic ifs</span>
+<a name="line-88"></a>    <span class='layout'>,</span> <span class='varid'>whenNotM</span>
+<a name="line-89"></a>    <span class='layout'>,</span> <span class='varid'>guardsM</span>
+<a name="line-90"></a>    <span class='layout'>,</span> <span class='varid'>containingM</span>
+<a name="line-91"></a>    <span class='layout'>,</span> <span class='varid'>processChildrenM</span>	<span class='comment'>-- monadic versions of recursive editing</span>
+<a name="line-92"></a>    <span class='layout'>,</span> <span class='varid'>processTopDownM</span>
+<a name="line-93"></a>    <span class='layout'>,</span> <span class='varid'>processBottomUpM</span>
+<a name="line-94"></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-95"></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-96"></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-97"></a>    <span class='layout'>,</span> <span class='varid'>performAction</span>	<span class='comment'>-- run a command within a filter</span>
+<a name="line-98"></a>    <span class='layout'>)</span>
+<a name="line-99"></a>
+<a name="line-100"></a><span class='keyword'>where</span>
+<a name="line-101"></a>
+<a name="line-102"></a>
+<a name="line-103"></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-104"></a>
+<a name="line-105"></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-106"></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-107"></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-108"></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-109"></a><span class='keyword'>infixr</span> <span class='num'>3</span> <span class='conop'>:-&gt;</span>
+<a name="line-110"></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-111"></a>
+<a name="line-112"></a><span class='comment'>-- |</span>
+<a name="line-113"></a><span class='comment'>-- tree filter type: a function mapping a tree onto a list of trees</span>
+<a name="line-114"></a><span class='comment'>--</span>
+<a name="line-115"></a><span class='comment'>-- filter can be used in various ways, as predicates, selectors, transformers, ...</span>
+<a name="line-116"></a>
+<a name="line-117"></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-118"></a>
+<a name="line-119"></a><span class='comment'>-- |</span>
+<a name="line-120"></a><span class='comment'>-- a filter for sequences</span>
+<a name="line-121"></a>
+<a name="line-122"></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-123"></a>
+<a name="line-124"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-125"></a>
+<a name="line-126"></a><span class='comment'>-- |</span>
+<a name="line-127"></a><span class='comment'>-- satisfies converts a result of a predicate filter into a boolean</span>
+<a name="line-128"></a><span class='comment'>--</span>
+<a name="line-129"></a><span class='comment'>-- is a shortcut for not . null</span>
+<a name="line-130"></a><span class='comment'>--</span>
+<a name="line-131"></a><span class='comment'>-- typical use in guards or ifs: @if (satisfies f) t then ... else ... @</span>
+<a name="line-132"></a><span class='comment'>--</span>
+<a name="line-133"></a><span class='comment'>--    * 1.parameter f :  the predicate filter</span>
+<a name="line-134"></a><span class='comment'>--</span>
+<a name="line-135"></a><span class='comment'>--    - 2.parameter t :  the tree to be tested</span>
+<a name="line-136"></a><span class='comment'>--</span>
+<a name="line-137"></a><span class='comment'>--    - returns : @b = not (null (f t))@</span>
+<a name="line-138"></a>
+<a name="line-139"></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-140"></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-141"></a>
+<a name="line-142"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-143"></a><span class='comment'>--</span>
+<a name="line-144"></a><span class='comment'>-- simple filter</span>
+<a name="line-145"></a>
+<a name="line-146"></a><span class='comment'>-- |</span>
+<a name="line-147"></a><span class='comment'>-- the null filter, returns the empty list</span>
+<a name="line-148"></a>
+<a name="line-149"></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-150"></a><span class='definition'>none</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>
+<a name="line-151"></a>
+<a name="line-152"></a><span class='comment'>-- |</span>
+<a name="line-153"></a><span class='comment'>-- the unit filter, returns the single element list containing the argument</span>
+<a name="line-154"></a>
+<a name="line-155"></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-156"></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-157"></a>
+<a name="line-158"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-159"></a><span class='comment'>--</span>
+<a name="line-160"></a><span class='comment'>-- selecting filter</span>
+<a name="line-161"></a>
+<a name="line-162"></a><span class='comment'>-- |</span>
+<a name="line-163"></a><span class='comment'>-- conversion from predicate function to filter</span>
+<a name="line-164"></a><span class='comment'>--</span>
+<a name="line-165"></a><span class='comment'>--    * 1.parameter p :  the predicate for testing the tree</span>
+<a name="line-166"></a><span class='comment'>--</span>
+<a name="line-167"></a><span class='comment'>--    - returns : 'this' or 'none' depending on the predicate</span>
+<a name="line-168"></a>
+<a name="line-169"></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-170"></a><span class='definition'>isOf</span> <span class='varid'>p</span> <span class='varid'>t</span>
+<a name="line-171"></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-172"></a>
+<a name="line-173"></a><span class='comment'>-- |</span>
+<a name="line-174"></a><span class='comment'>-- select filter, selects trees with node values with a specific property</span>
+<a name="line-175"></a><span class='comment'>--</span>
+<a name="line-176"></a><span class='comment'>--    * 1.parameter p :  the predicate for testing the node value</span>
+<a name="line-177"></a><span class='comment'>--</span>
+<a name="line-178"></a><span class='comment'>--    - returns : @[]@ or @[t]@ depending on @p t@</span>
+<a name="line-179"></a><span class='comment'>--</span>
+<a name="line-180"></a><span class='comment'>-- a special case of 'isOf' filter</span>
+<a name="line-181"></a>
+<a name="line-182"></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-183"></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-184"></a>
+<a name="line-185"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-186"></a><span class='comment'>--</span>
+<a name="line-187"></a><span class='comment'>-- simple editing filters</span>
+<a name="line-188"></a>
+<a name="line-189"></a><span class='comment'>-- |</span>
+<a name="line-190"></a><span class='comment'>-- filter for substituting an arbitray tree by a constant</span>
+<a name="line-191"></a><span class='comment'>--</span>
+<a name="line-192"></a><span class='comment'>--    * 1.parameter t :  the result tree, the input tree is ignored</span>
+<a name="line-193"></a><span class='comment'>--</span>
+<a name="line-194"></a><span class='comment'>--    - returns : the filter</span>
+<a name="line-195"></a>
+<a name="line-196"></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-197"></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-198"></a>
+<a name="line-199"></a><span class='comment'>-- |</span>
+<a name="line-200"></a><span class='comment'>-- filter for replacing the node</span>
+<a name="line-201"></a><span class='comment'>--</span>
+<a name="line-202"></a><span class='comment'>--    * 1.parameter n :  the new node</span>
+<a name="line-203"></a><span class='comment'>--</span>
+<a name="line-204"></a><span class='comment'>--    - returns : the editing filter</span>
+<a name="line-205"></a>
+<a name="line-206"></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-207"></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-208"></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-209"></a>
+<a name="line-210"></a><span class='comment'>-- |</span>
+<a name="line-211"></a><span class='comment'>-- filter for replacing the children</span>
+<a name="line-212"></a><span class='comment'>--</span>
+<a name="line-213"></a><span class='comment'>--    * 1.parameter cs :  cs the list of children</span>
+<a name="line-214"></a><span class='comment'>--</span>
+<a name="line-215"></a><span class='comment'>--    - returns : the filter</span>
+<a name="line-216"></a>
+<a name="line-217"></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-218"></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-219"></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-220"></a>
+<a name="line-221"></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-222"></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-223"></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-224"></a>
+<a name="line-225"></a><span class='comment'>-- |</span>
+<a name="line-226"></a><span class='comment'>-- filter for editing the node</span>
+<a name="line-227"></a><span class='comment'>--</span>
+<a name="line-228"></a><span class='comment'>--    * 1.parameter nf :  the XNode editing funtion</span>
+<a name="line-229"></a><span class='comment'>--</span>
+<a name="line-230"></a><span class='comment'>--    - returns : the filter</span>
+<a name="line-231"></a>
+<a name="line-232"></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-233"></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-234"></a>
+<a name="line-235"></a><span class='comment'>-- |</span>
+<a name="line-236"></a><span class='comment'>-- filter for editing the children</span>
+<a name="line-237"></a><span class='comment'>--</span>
+<a name="line-238"></a><span class='comment'>-- all children are processed with a filter mapping lists to lists,</span>
+<a name="line-239"></a><span class='comment'>-- this enables not only elementwise editing by lifting a normal</span>
+<a name="line-240"></a><span class='comment'>-- filter to a list filter with @(f $$)@ (see '($$)') but also manipulation</span>
+<a name="line-241"></a><span class='comment'>-- of the order of the elements, e.g. "reverse" is an appropriate childen</span>
+<a name="line-242"></a><span class='comment'>-- editing function.</span>
+<a name="line-243"></a><span class='comment'>--</span>
+<a name="line-244"></a><span class='comment'>--    * 1.parameter csf :  the children editing function</span>
+<a name="line-245"></a><span class='comment'>--</span>
+<a name="line-246"></a><span class='comment'>--    - returns : the filter</span>
+<a name="line-247"></a><span class='comment'>--</span>
+<a name="line-248"></a><span class='comment'>-- see also : 'processChildren'</span>
+<a name="line-249"></a>
+<a name="line-250"></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-251"></a><span class='definition'>modifyChildren</span> <span class='varid'>f</span> <span class='comment'>-- (NTree n cs)</span>
+<a name="line-252"></a>    <span class='comment'>-- = [NTree n (f cs)]</span>
+<a name="line-253"></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-254"></a>
+<a name="line-255"></a><span class='comment'>-- |</span>
+<a name="line-256"></a><span class='comment'>-- filter for substituting the children of a tree by</span>
+<a name="line-257"></a><span class='comment'>-- a new list of childen computed by applying a filter to the input tree.</span>
+<a name="line-258"></a><span class='comment'>-- 'modifyChildren' can be expressed by 'substChildren':</span>
+<a name="line-259"></a><span class='comment'>-- @modifyChildren f t@ is equal to @substChildren (f . getChildren)@</span>
+<a name="line-260"></a>
+<a name="line-261"></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-262"></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-263"></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-264"></a>
+<a name="line-265"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-266"></a><span class='comment'>--</span>
+<a name="line-267"></a><span class='comment'>-- combinators (copied from HaXml)</span>
+<a name="line-268"></a><span class='comment'>--</span>
+<a name="line-269"></a>
+<a name="line-270"></a><span class='comment'>-- |</span>
+<a name="line-271"></a><span class='comment'>-- sequential composition of filters, usually written in infix notation f2 `o` f1.</span>
+<a name="line-272"></a><span class='comment'>--</span>
+<a name="line-273"></a><span class='comment'>-- for predicate filter the logical AND</span>
+<a name="line-274"></a><span class='comment'>--</span>
+<a name="line-275"></a><span class='comment'>--    * 1.parameter f2 :  the 2. filter</span>
+<a name="line-276"></a><span class='comment'>--</span>
+<a name="line-277"></a><span class='comment'>--    - 2.parameter f1 :  the 1. filter</span>
+<a name="line-278"></a><span class='comment'>--</span>
+<a name="line-279"></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-280"></a>
+<a name="line-281"></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-282"></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-283"></a>
+<a name="line-284"></a><span class='comment'>-- |</span>
+<a name="line-285"></a><span class='comment'>-- pronounced \"followed by\", defined as: @f .&gt; g = g \`o\` f@.</span>
+<a name="line-286"></a><span class='comment'>--</span>
+<a name="line-287"></a><span class='comment'>-- allows filter composition in a more readable way from left to right</span>
+<a name="line-288"></a><span class='comment'>--</span>
+<a name="line-289"></a><span class='comment'>--    * 1.parameter f1 :  the 1. filter</span>
+<a name="line-290"></a><span class='comment'>--</span>
+<a name="line-291"></a><span class='comment'>--    - 2.parameter f2 :  the 2. filter</span>
+<a name="line-292"></a><span class='comment'>--</span>
+<a name="line-293"></a><span class='comment'>--    - returns : the composition of f1 and f2</span>
+<a name="line-294"></a><span class='comment'>--</span>
+<a name="line-295"></a><span class='comment'>-- see also : 'o', '(..&gt;)'</span>
+<a name="line-296"></a>
+<a name="line-297"></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-298"></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-299"></a>
+<a name="line-300"></a><span class='comment'>-- |</span>
+<a name="line-301"></a><span class='comment'>-- apply a list of filters sequentially with '(.&gt;)', for predicate filters the generalized AND</span>
+<a name="line-302"></a><span class='comment'>--</span>
+<a name="line-303"></a><span class='comment'>-- see also : '(.&gt;)'</span>
+<a name="line-304"></a>
+<a name="line-305"></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-306"></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-307"></a>
+<a name="line-308"></a><span class='comment'>-- |</span>
+<a name="line-309"></a><span class='comment'>-- binary parallel composition, the logical OR for predicate filter</span>
+<a name="line-310"></a><span class='comment'>--</span>
+<a name="line-311"></a><span class='comment'>--    * 1.parameter f1 :  the 1. filter</span>
+<a name="line-312"></a><span class='comment'>--</span>
+<a name="line-313"></a><span class='comment'>--    - 2.parameter f2 :  the 2. filter</span>
+<a name="line-314"></a><span class='comment'>--</span>
+<a name="line-315"></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-316"></a>
+<a name="line-317"></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-318"></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-319"></a>
+<a name="line-320"></a><span class='comment'>-- |</span>
+<a name="line-321"></a><span class='comment'>-- special sequential composition.</span>
+<a name="line-322"></a><span class='comment'>--</span>
+<a name="line-323"></a><span class='comment'>-- filter f is applied to an argument t.</span>
+<a name="line-324"></a><span class='comment'>-- then filter g is applied to all elements of the result list,</span>
+<a name="line-325"></a><span class='comment'>-- but the argument t is also passed as extra parameter to g.</span>
+<a name="line-326"></a><span class='comment'>--</span>
+<a name="line-327"></a><span class='comment'>-- This allows for step by step transformations of a tree</span>
+<a name="line-328"></a><span class='comment'>-- with access to the original tree in every</span>
+<a name="line-329"></a><span class='comment'>-- transformation step.</span>
+<a name="line-330"></a><span class='comment'>--</span>
+<a name="line-331"></a><span class='comment'>-- see also : '(.&gt;)', 'o'</span>
+<a name="line-332"></a>
+<a name="line-333"></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-334"></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-335"></a>
+<a name="line-336"></a><span class='comment'>-- |</span>
+<a name="line-337"></a><span class='comment'>-- apply a list of filters, a \"union\" for lists, for predicate filters the generalized OR</span>
+<a name="line-338"></a><span class='comment'>--</span>
+<a name="line-339"></a><span class='comment'>--    * 1.parameter fs :  the list of filters</span>
+<a name="line-340"></a><span class='comment'>--</span>
+<a name="line-341"></a><span class='comment'>--    - returns : the composing filter</span>
+<a name="line-342"></a>
+<a name="line-343"></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-344"></a><span class='definition'>cat</span> <span class='varid'>fs</span>  <span class='varid'>t</span>
+<a name="line-345"></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-346"></a>
+<a name="line-347"></a><span class='comment'>-- |</span>
+<a name="line-348"></a><span class='comment'>-- Filter for editing the children of a tree element wise</span>
+<a name="line-349"></a><span class='comment'>--</span>
+<a name="line-350"></a><span class='comment'>--    * 1.parameter cf :  the filter applied to the children</span>
+<a name="line-351"></a><span class='comment'>--</span>
+<a name="line-352"></a><span class='comment'>--    - returns : the editing filter</span>
+<a name="line-353"></a><span class='comment'>--</span>
+<a name="line-354"></a><span class='comment'>-- see also : 'modifyChildren'</span>
+<a name="line-355"></a>
+<a name="line-356"></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-357"></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-358"></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-359"></a>
+<a name="line-360"></a><span class='comment'>-- |</span>
+<a name="line-361"></a><span class='comment'>-- infix operator for applying a filter to a list of trees</span>
+<a name="line-362"></a><span class='comment'>--</span>
+<a name="line-363"></a><span class='comment'>--    * 1.parameter f :  the filter</span>
+<a name="line-364"></a><span class='comment'>--</span>
+<a name="line-365"></a><span class='comment'>--    - 2.parameter ts :  the list of trees</span>
+<a name="line-366"></a><span class='comment'>--</span>
+<a name="line-367"></a><span class='comment'>--    - returns : the concatenated list of results</span>
+<a name="line-368"></a>
+<a name="line-369"></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-370"></a><span class='definition'>f</span> <span class='varop'>$$</span> <span class='varid'>l</span>
+<a name="line-371"></a>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>f</span> <span class='varid'>l</span>
+<a name="line-372"></a>
+<a name="line-373"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-374"></a><span class='comment'>--</span>
+<a name="line-375"></a><span class='comment'>-- choices</span>
+<a name="line-376"></a><span class='comment'>--</span>
+<a name="line-377"></a>
+<a name="line-378"></a><span class='comment'>-- |</span>
+<a name="line-379"></a><span class='comment'>-- directional choice, usually written in infix notation as f `orElse` g</span>
+<a name="line-380"></a><span class='comment'>--</span>
+<a name="line-381"></a><span class='comment'>--    * 1.parameter f :  the 1. filter</span>
+<a name="line-382"></a><span class='comment'>--</span>
+<a name="line-383"></a><span class='comment'>--    - 2.parameter g :  the 2. filter</span>
+<a name="line-384"></a><span class='comment'>--</span>
+<a name="line-385"></a><span class='comment'>--    - 3.parameter t :  the tree</span>
+<a name="line-386"></a><span class='comment'>--</span>
+<a name="line-387"></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-388"></a>
+<a name="line-389"></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-390"></a><a name="orElse"></a><span class='definition'>f</span> <span class='varop'>`orElse`</span> <span class='varid'>g</span>
+<a name="line-391"></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-392"></a>	    <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-393"></a>	    <span class='keyword'>in</span>
+<a name="line-394"></a>	    <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>
+<a name="line-395"></a>	    <span class='keyword'>then</span> <span class='varid'>g</span> <span class='varid'>t</span>
+<a name="line-396"></a>	    <span class='keyword'>else</span> <span class='varid'>res</span>
+<a name="line-397"></a>
+<a name="line-398"></a><span class='comment'>-- |</span>
+<a name="line-399"></a><span class='comment'>-- if then else lifted to filters</span>
+<a name="line-400"></a><span class='comment'>--</span>
+<a name="line-401"></a><span class='comment'>--    * 1.parameter p :  the predicate filter</span>
+<a name="line-402"></a><span class='comment'>--</span>
+<a name="line-403"></a><span class='comment'>--    - 2.parameter t :  the \"then\" filter</span>
+<a name="line-404"></a><span class='comment'>--</span>
+<a name="line-405"></a><span class='comment'>--    - 3.parameter e :  the \"else\" filter</span>
+<a name="line-406"></a><span class='comment'>--</span>
+<a name="line-407"></a><span class='comment'>--    - returns : the resulting conditional filter</span>
+<a name="line-408"></a>
+<a name="line-409"></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-410"></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-411"></a>
+<a name="line-412"></a><span class='comment'>-- |</span>
+<a name="line-413"></a><span class='comment'>-- when the predicate p holds, f is applied, else the identity filter this</span>
+<a name="line-414"></a><span class='comment'>--</span>
+<a name="line-415"></a><span class='comment'>--    * 1.parameter f :  the conditinally applied filter</span>
+<a name="line-416"></a><span class='comment'>--</span>
+<a name="line-417"></a><span class='comment'>--    - 2.parameter p :  the predicate</span>
+<a name="line-418"></a><span class='comment'>--</span>
+<a name="line-419"></a><span class='comment'>--    - returns : the conditional filter</span>
+<a name="line-420"></a><span class='comment'>--</span>
+<a name="line-421"></a><span class='comment'>-- see also : 'iff', 'whenNot', 'guards', 'whenM'</span>
+<a name="line-422"></a>
+<a name="line-423"></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-424"></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-425"></a>
+<a name="line-426"></a><span class='comment'>-- |</span>
+<a name="line-427"></a><span class='comment'>-- the complementary filter of when</span>
+<a name="line-428"></a><span class='comment'>--</span>
+<a name="line-429"></a><span class='comment'>-- shortcut for f `when` neg g</span>
+<a name="line-430"></a><span class='comment'>--</span>
+<a name="line-431"></a><span class='comment'>-- see also : 'iff', 'when', 'whenNotM', 'neg'</span>
+<a name="line-432"></a>
+<a name="line-433"></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-434"></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-435"></a>
+<a name="line-436"></a><span class='comment'>-- |</span>
+<a name="line-437"></a><span class='comment'>-- when the predicate p holds, f is applied, else the null filter none</span>
+<a name="line-438"></a><span class='comment'>--</span>
+<a name="line-439"></a><span class='comment'>--    * 1.parameter p :  the predicate filter</span>
+<a name="line-440"></a><span class='comment'>--</span>
+<a name="line-441"></a><span class='comment'>--    - 2.parameter f :  the conditionally applied filter</span>
+<a name="line-442"></a><span class='comment'>--</span>
+<a name="line-443"></a><span class='comment'>--    - returns : the conditional filter</span>
+<a name="line-444"></a><span class='comment'>--</span>
+<a name="line-445"></a><span class='comment'>-- see also : 'iff', 'when', 'guardsM'</span>
+<a name="line-446"></a>
+<a name="line-447"></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-448"></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-449"></a>
+<a name="line-450"></a>
+<a name="line-451"></a><span class='comment'>-- |</span>
+<a name="line-452"></a><span class='comment'>-- negation lifted to filters</span>
+<a name="line-453"></a><span class='comment'>--</span>
+<a name="line-454"></a><span class='comment'>--    * 1.parameter f :  the predicate filter</span>
+<a name="line-455"></a><span class='comment'>--</span>
+<a name="line-456"></a><span class='comment'>--    - returns : the filter, that succeeds, when f failed</span>
+<a name="line-457"></a>
+<a name="line-458"></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-459"></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-460"></a>
+<a name="line-461"></a><span class='comment'>-- |</span>
+<a name="line-462"></a><span class='comment'>-- auxiliary datatype for cases within choice filter</span>
+<a name="line-463"></a>
+<a name="line-464"></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-465"></a>
+<a name="line-466"></a><span class='comment'>-- |</span>
+<a name="line-467"></a><span class='comment'>-- multiway branch. The list of cases @f :-&gt; g@ is processed sequentially,</span>
+<a name="line-468"></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-469"></a><span class='comment'>-- applied.</span>
+<a name="line-470"></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-471"></a><span class='comment'>--</span>
+<a name="line-472"></a><span class='comment'>-- see also : 'iff', 'choiceM'</span>
+<a name="line-473"></a>
+<a name="line-474"></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-475"></a><span class='definition'>choice</span> <span class='conid'>[]</span>
+<a name="line-476"></a>    <span class='keyglyph'>=</span> <span class='varid'>none</span>
+<a name="line-477"></a>
+<a name="line-478"></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-479"></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-480"></a>
+<a name="line-481"></a><span class='comment'>-- |</span>
+<a name="line-482"></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-483"></a><span class='comment'>--</span>
+<a name="line-484"></a><span class='comment'>--    * 1.parameter f :  the processing filter</span>
+<a name="line-485"></a><span class='comment'>--</span>
+<a name="line-486"></a><span class='comment'>--    - 2.parameter g :  the predicate filter</span>
+<a name="line-487"></a><span class='comment'>--</span>
+<a name="line-488"></a><span class='comment'>--    - 3.parameter t :  the tree</span>
+<a name="line-489"></a><span class='comment'>--</span>
+<a name="line-490"></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-491"></a><span class='comment'>--</span>
+<a name="line-492"></a><span class='comment'>-- see also : 'notContaining'</span>
+<a name="line-493"></a>
+<a name="line-494"></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-495"></a><a name="containing"></a><span class='definition'>f</span> <span class='varop'>`containing`</span> <span class='varid'>g</span>
+<a name="line-496"></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-497"></a>
+<a name="line-498"></a><span class='comment'>-- |</span>
+<a name="line-499"></a><span class='comment'>-- pruning: keep only those results from f for which g does not hold</span>
+<a name="line-500"></a><span class='comment'>--</span>
+<a name="line-501"></a><span class='comment'>-- see also : 'containing'</span>
+<a name="line-502"></a>
+<a name="line-503"></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-504"></a><a name="notContaining"></a><span class='definition'>f</span> <span class='varop'>`notContaining`</span> <span class='varid'>g</span>
+<a name="line-505"></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-506"></a>
+<a name="line-507"></a><span class='comment'>-- |</span>
+<a name="line-508"></a><span class='comment'>-- pruning: monadic version of containing, usually written in infix notation as f `containingM` g</span>
+<a name="line-509"></a><span class='comment'>--</span>
+<a name="line-510"></a><span class='comment'>--    * 1.parameter f :  the monadic processing filter</span>
+<a name="line-511"></a><span class='comment'>--</span>
+<a name="line-512"></a><span class='comment'>--    - 2.parameter g :  the predicate filter</span>
+<a name="line-513"></a><span class='comment'>--</span>
+<a name="line-514"></a><span class='comment'>--    - 3.parameter t :  the tree</span>
+<a name="line-515"></a><span class='comment'>--</span>
+<a name="line-516"></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-517"></a><span class='comment'>--</span>
+<a name="line-518"></a><span class='comment'>-- see also : 'notContaining'</span>
+<a name="line-519"></a>
+<a name="line-520"></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-521"></a><a name="containingM"></a><span class='definition'>f</span> <span class='varop'>`containingM`</span> <span class='varid'>g</span>
+<a name="line-522"></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-523"></a>             <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-524"></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-525"></a>
+<a name="line-526"></a><span class='comment'>-- |</span>
+<a name="line-527"></a><span class='comment'>-- pronounced \"slash\", meaning g inside f</span>
+<a name="line-528"></a>
+<a name="line-529"></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-530"></a><span class='definition'>f</span> <span class='varop'>/&gt;</span> <span class='varid'>g</span>
+<a name="line-531"></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-532"></a>
+<a name="line-533"></a><span class='comment'>-- |</span>
+<a name="line-534"></a><span class='comment'>-- pronounced \"outside\" meaning f containing g</span>
+<a name="line-535"></a>
+<a name="line-536"></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-537"></a><span class='definition'>f</span> <span class='varop'>&lt;/</span> <span class='varid'>g</span>
+<a name="line-538"></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-539"></a>
+<a name="line-540"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-541"></a><span class='comment'>--</span>
+<a name="line-542"></a><span class='comment'>-- recursive search filters</span>
+<a name="line-543"></a>
+<a name="line-544"></a><span class='comment'>-- |</span>
+<a name="line-545"></a><span class='comment'>-- top down search.</span>
+<a name="line-546"></a><span class='comment'>--</span>
+<a name="line-547"></a><span class='comment'>-- search terminates, when filter f succeeds</span>
+<a name="line-548"></a><span class='comment'>-- can e.g. be used for finding all outermost tag node of a specific kind</span>
+<a name="line-549"></a>
+<a name="line-550"></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-551"></a><span class='definition'>deep</span> <span class='varid'>f</span>
+<a name="line-552"></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-553"></a>
+<a name="line-554"></a><span class='comment'>-- |</span>
+<a name="line-555"></a><span class='comment'>-- bottom up search.</span>
+<a name="line-556"></a><span class='comment'>--</span>
+<a name="line-557"></a><span class='comment'>-- first the children are processed,</span>
+<a name="line-558"></a><span class='comment'>-- if this does not succeed, the node itself is processed</span>
+<a name="line-559"></a><span class='comment'>-- can e.g. be used for finding all innermost tag nodes of a specific kind</span>
+<a name="line-560"></a>
+<a name="line-561"></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-562"></a><span class='definition'>deepest</span> <span class='varid'>f</span>
+<a name="line-563"></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-564"></a>
+<a name="line-565"></a><span class='comment'>-- |</span>
+<a name="line-566"></a><span class='comment'>-- process all nodes of the whole tree.</span>
+<a name="line-567"></a><span class='comment'>--</span>
+<a name="line-568"></a><span class='comment'>-- can e.g. be used for finding all nodes of a specific kind</span>
+<a name="line-569"></a>
+<a name="line-570"></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-571"></a><span class='definition'>multi</span> <span class='varid'>f</span>
+<a name="line-572"></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-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><span class='comment'>-- recursive transformation filters</span>
+<a name="line-577"></a><span class='comment'>--</span>
+<a name="line-578"></a>
+<a name="line-579"></a><span class='comment'>-- |</span>
+<a name="line-580"></a><span class='comment'>-- bottom up transformation</span>
+<a name="line-581"></a><span class='comment'>--</span>
+<a name="line-582"></a><span class='comment'>--    * 1.parameter f :  the /simple/ transforming filter</span>
+<a name="line-583"></a><span class='comment'>--</span>
+<a name="line-584"></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-585"></a><span class='comment'>--</span>
+<a name="line-586"></a><span class='comment'>-- see also : 'processTopDown', 'processBottomUpIfNot'</span>
+<a name="line-587"></a>
+<a name="line-588"></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-589"></a><span class='definition'>processBottomUp</span> <span class='varid'>f</span>
+<a name="line-590"></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-591"></a>
+<a name="line-592"></a><span class='comment'>-- |</span>
+<a name="line-593"></a><span class='comment'>-- top down transformation</span>
+<a name="line-594"></a><span class='comment'>--</span>
+<a name="line-595"></a><span class='comment'>--    * 1.parameter f :  the /simple/ transforming filter</span>
+<a name="line-596"></a><span class='comment'>--</span>
+<a name="line-597"></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-598"></a><span class='comment'>--</span>
+<a name="line-599"></a><span class='comment'>-- see also : 'processBottomUp'</span>
+<a name="line-600"></a>
+<a name="line-601"></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-602"></a><span class='definition'>processTopDown</span> <span class='varid'>f</span>
+<a name="line-603"></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-604"></a>
+<a name="line-605"></a><span class='comment'>-- |</span>
+<a name="line-606"></a><span class='comment'>-- guarded bottom up transformation, stops at subtrees for which a predicate p holds</span>
+<a name="line-607"></a><span class='comment'>--</span>
+<a name="line-608"></a><span class='comment'>--    * 1.parameter f :  the transforming filter</span>
+<a name="line-609"></a><span class='comment'>--</span>
+<a name="line-610"></a><span class='comment'>--    - 2.parameter p :  the predicate filter for the guard</span>
+<a name="line-611"></a><span class='comment'>--</span>
+<a name="line-612"></a><span class='comment'>--    - returns : the filter for processing all (sub-)trees</span>
+<a name="line-613"></a><span class='comment'>--</span>
+<a name="line-614"></a><span class='comment'>-- see also : 'processBottomUp'</span>
+<a name="line-615"></a>
+<a name="line-616"></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-617"></a><span class='definition'>processBottomUpIfNot</span> <span class='varid'>f</span> <span class='varid'>p</span>
+<a name="line-618"></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-619"></a>
+<a name="line-620"></a><span class='comment'>-- |</span>
+<a name="line-621"></a><span class='comment'>-- top down transformation until a node to be transformed is found</span>
+<a name="line-622"></a><span class='comment'>--</span>
+<a name="line-623"></a><span class='comment'>--    * 1.parameter f :  the /simple/ transforming filter</span>
+<a name="line-624"></a><span class='comment'>--</span>
+<a name="line-625"></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-626"></a><span class='comment'>--		  recursively to all children of the input tree.</span>
+<a name="line-627"></a><span class='comment'>--</span>
+<a name="line-628"></a><span class='comment'>-- Example:</span>
+<a name="line-629"></a><span class='comment'>--</span>
+<a name="line-630"></a><span class='comment'>-- @processTopDownUntil none@</span>
+<a name="line-631"></a><span class='comment'>--</span>
+<a name="line-632"></a><span class='comment'>-- is the identity filter (maybe a bit more inefficient).</span>
+<a name="line-633"></a><span class='comment'>--</span>
+<a name="line-634"></a><span class='comment'>-- Example:</span>
+<a name="line-635"></a><span class='comment'>--</span>
+<a name="line-636"></a><span class='comment'>-- @processTopDownUntil (add1Attr \"border\" \"2\" \`containing\` isTag \"table\")@</span>
+<a name="line-637"></a><span class='comment'>--</span>
+<a name="line-638"></a><span class='comment'>-- is a filter for adding an attribute border=\"2\" in all top level table tags.</span>
+<a name="line-639"></a><span class='comment'>--		  The content of table tags will remain unchanged.</span>
+<a name="line-640"></a><span class='comment'>--</span>
+<a name="line-641"></a><span class='comment'>-- see also : 'processTopDown', 'processBottomUp'</span>
+<a name="line-642"></a>
+<a name="line-643"></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-644"></a><span class='definition'>processTopDownUntil</span> <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-645"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>res</span>
+<a name="line-646"></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-647"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
+<a name="line-648"></a>	<span class='keyglyph'>=</span> <span class='varid'>res</span>
+<a name="line-649"></a>    <span class='keyword'>where</span>
+<a name="line-650"></a>    <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-651"></a>
+<a name="line-652"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-653"></a><span class='comment'>--</span>
+<a name="line-654"></a>
+<a name="line-655"></a><span class='comment'>-- |</span>
+<a name="line-656"></a><span class='comment'>-- insertion of trees into the list of children at a given position</span>
+<a name="line-657"></a><span class='comment'>--</span>
+<a name="line-658"></a><span class='comment'>-- useful for inserting something into the list of children at a given position</span>
+<a name="line-659"></a><span class='comment'>-- the list of children is split with the @splitAt@ function</span>
+<a name="line-660"></a><span class='comment'>-- the nodes are inserted between these two sublists.</span>
+<a name="line-661"></a><span class='comment'>--</span>
+<a name="line-662"></a><span class='comment'>-- examples: @insertChildrenAt 0 ins t@ inserts all elements computed with @ins t@ in front</span>
+<a name="line-663"></a><span class='comment'>-- of the childen of @t@, @insertChildrenAt 1 ins t@ behind the first child</span>
+<a name="line-664"></a><span class='comment'>--</span>
+<a name="line-665"></a><span class='comment'>-- see also: 'insertChildrenAfter'</span>
+<a name="line-666"></a>
+<a name="line-667"></a>
+<a name="line-668"></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-669"></a><span class='definition'>insertChildrenAt</span> <span class='varid'>i</span> <span class='varid'>ins</span> <span class='varid'>t</span>
+<a name="line-670"></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-671"></a>    <span class='keyword'>where</span>
+<a name="line-672"></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-673"></a>
+<a name="line-674"></a><span class='comment'>-- |</span>
+<a name="line-675"></a><span class='comment'>-- insertion of trees into the list of children after specific elements</span>
+<a name="line-676"></a><span class='comment'>--</span>
+<a name="line-677"></a><span class='comment'>-- useful for inserting something into the list of children of a node</span>
+<a name="line-678"></a><span class='comment'>-- the list of children is split with the @span@ function and the filter p as predicate</span>
+<a name="line-679"></a><span class='comment'>-- the nodes are inserted between these two sublists</span>
+<a name="line-680"></a><span class='comment'>--</span>
+<a name="line-681"></a><span class='comment'>-- examples: @insertChildrenAfter none ins t@ inserts all elements computed with @ins t@ in front</span>
+<a name="line-682"></a><span class='comment'>-- of the childen of @t@, @insertChildrenAfter this ins t@ appends the elements to the children</span>
+<a name="line-683"></a><span class='comment'>--</span>
+<a name="line-684"></a><span class='comment'>-- see also: 'insertChildrenAt'</span>
+<a name="line-685"></a>
+<a name="line-686"></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-687"></a><span class='definition'>insertChildrenAfter</span> <span class='varid'>p</span> <span class='varid'>ins</span> <span class='varid'>t</span>
+<a name="line-688"></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-689"></a>    <span class='keyword'>where</span>
+<a name="line-690"></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-691"></a>
+<a name="line-692"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-693"></a><span class='comment'>--</span>
+<a name="line-694"></a><span class='comment'>-- monadic filter</span>
+<a name="line-695"></a>
+<a name="line-696"></a><span class='comment'>-- |</span>
+<a name="line-697"></a><span class='comment'>-- the monadic version of the identity filter this.</span>
+<a name="line-698"></a><span class='comment'>--</span>
+<a name="line-699"></a><span class='comment'>-- see also : 'this'</span>
+<a name="line-700"></a>
+<a name="line-701"></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-702"></a><span class='definition'>thisM</span>		<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='varid'>this</span>
+<a name="line-703"></a>
+<a name="line-704"></a><span class='comment'>-- |</span>
+<a name="line-705"></a><span class='comment'>-- the monadic version of the null filter none.</span>
+<a name="line-706"></a><span class='comment'>--</span>
+<a name="line-707"></a><span class='comment'>-- see also : 'none'</span>
+<a name="line-708"></a>
+<a name="line-709"></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-710"></a><span class='definition'>noneM</span>		<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='varid'>none</span>
+<a name="line-711"></a>
+<a name="line-712"></a><span class='comment'>-- |</span>
+<a name="line-713"></a><span class='comment'>-- sequential composition of monadic filters, monadic version of \".&gt;\".</span>
+<a name="line-714"></a><span class='comment'>--</span>
+<a name="line-715"></a><span class='comment'>--    * 1.parameter f1 :  the 1. monadic filter</span>
+<a name="line-716"></a><span class='comment'>--</span>
+<a name="line-717"></a><span class='comment'>--    - 2.parameter f2 :  the 2. monadic filter</span>
+<a name="line-718"></a><span class='comment'>--</span>
+<a name="line-719"></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-720"></a><span class='comment'>--</span>
+<a name="line-721"></a><span class='comment'>-- see also : '(.&gt;)'</span>
+<a name="line-722"></a>
+<a name="line-723"></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-724"></a><a name="cmd1"></a><span class='definition'>cmd1</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>cmd2</span>
+<a name="line-725"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-726"></a>      <span class='keyword'>do</span>
+<a name="line-727"></a>      <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cmd1</span> <span class='varid'>t</span>
+<a name="line-728"></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-729"></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-730"></a>
+<a name="line-731"></a><span class='comment'>-- |</span>
+<a name="line-732"></a><span class='comment'>-- generalized sequential composition of monadic filters</span>
+<a name="line-733"></a>
+<a name="line-734"></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-735"></a><span class='definition'>seqM</span>
+<a name="line-736"></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-737"></a>
+<a name="line-738"></a><span class='comment'>-- |</span>
+<a name="line-739"></a><span class='comment'>-- binary parallel composition, the logical OR for predicate filter</span>
+<a name="line-740"></a><span class='comment'>--</span>
+<a name="line-741"></a><span class='comment'>--    * 1.parameter f1 :  the 1. filter</span>
+<a name="line-742"></a><span class='comment'>--</span>
+<a name="line-743"></a><span class='comment'>--    - 2.parameter f2 :  the 2. filter</span>
+<a name="line-744"></a><span class='comment'>--</span>
+<a name="line-745"></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-746"></a><span class='comment'>-- see also: 'cat', '+++', 'catM'</span>
+<a name="line-747"></a>
+<a name="line-748"></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-749"></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-750"></a>			 <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-751"></a>			 <span class='varid'>r2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>t</span>
+<a name="line-752"></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-753"></a>
+<a name="line-754"></a><span class='comment'>-- |</span>
+<a name="line-755"></a><span class='comment'>-- apply a list of monadic filters</span>
+<a name="line-756"></a><span class='comment'>--</span>
+<a name="line-757"></a><span class='comment'>--    * 1.parameter fs :  the list of filters</span>
+<a name="line-758"></a><span class='comment'>--</span>
+<a name="line-759"></a><span class='comment'>--    - returns : the composing filter</span>
+<a name="line-760"></a><span class='comment'>-- see also: 'cat', '+++', '+++&gt;&gt;'</span>
+<a name="line-761"></a>
+<a name="line-762"></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-763"></a><span class='definition'>catM</span> <span class='varid'>fs</span>  <span class='varid'>t</span>
+<a name="line-764"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-765"></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-766"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>concat</span> <span class='varid'>res</span>
+<a name="line-767"></a>
+<a name="line-768"></a><span class='comment'>-- |</span>
+<a name="line-769"></a><span class='comment'>-- monadic if-then-else.</span>
+<a name="line-770"></a><span class='comment'>--</span>
+<a name="line-771"></a><span class='comment'>--    * 1.parameter p :  the predicate</span>
+<a name="line-772"></a><span class='comment'>--</span>
+<a name="line-773"></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-774"></a><span class='comment'>--</span>
+<a name="line-775"></a><span class='comment'>--    - 3.parameter elseP :  the else part</span>
+<a name="line-776"></a><span class='comment'>--</span>
+<a name="line-777"></a><span class='comment'>--    - returns : the monadic filter for the conditional</span>
+<a name="line-778"></a>
+<a name="line-779"></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-780"></a><span class='definition'>ifM</span> <span class='varid'>p</span> <span class='varid'>thenPart</span> <span class='varid'>elsePart</span>
+<a name="line-781"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>
+<a name="line-782"></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-783"></a>      <span class='keyword'>then</span> <span class='varid'>thenPart</span> <span class='varid'>t</span>
+<a name="line-784"></a>      <span class='keyword'>else</span> <span class='varid'>elsePart</span> <span class='varid'>t</span>
+<a name="line-785"></a>
+<a name="line-786"></a><span class='comment'>-- |</span>
+<a name="line-787"></a><span class='comment'>-- monadic version of multiway branch. The list of cases @f :-&gt; g@ is processed sequentially,</span>
+<a name="line-788"></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-789"></a><span class='comment'>-- applied.</span>
+<a name="line-790"></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-791"></a><span class='comment'>--</span>
+<a name="line-792"></a><span class='comment'>-- see also : 'choice', 'ifM'</span>
+<a name="line-793"></a>
+<a name="line-794"></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-795"></a><span class='definition'>choiceM</span> <span class='conid'>[]</span>
+<a name="line-796"></a>    <span class='keyglyph'>=</span> <span class='varid'>noneM</span>
+<a name="line-797"></a>
+<a name="line-798"></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-799"></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-800"></a>
+<a name="line-801"></a>
+<a name="line-802"></a><span class='comment'>-- |</span>
+<a name="line-803"></a><span class='comment'>-- when the predicate p holds, the monadic filter f is applied, else the identity filter.</span>
+<a name="line-804"></a><span class='comment'>--</span>
+<a name="line-805"></a><span class='comment'>--    * 1.parameter f :  the conditinally applied monadic filter</span>
+<a name="line-806"></a><span class='comment'>--</span>
+<a name="line-807"></a><span class='comment'>--    - 2.parameter p :  the simple predicate</span>
+<a name="line-808"></a><span class='comment'>--</span>
+<a name="line-809"></a><span class='comment'>--    - returns : the conditional filter</span>
+<a name="line-810"></a><span class='comment'>--</span>
+<a name="line-811"></a><span class='comment'>-- see also : 'ifM', 'when', 'guardsM', 'whenNotM'</span>
+<a name="line-812"></a>
+<a name="line-813"></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-814"></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-815"></a>
+<a name="line-816"></a><span class='comment'>-- |</span>
+<a name="line-817"></a><span class='comment'>-- the complementary filter of whenM.</span>
+<a name="line-818"></a><span class='comment'>--</span>
+<a name="line-819"></a><span class='comment'>-- see also : 'ifM', 'whenM', 'whenNot'</span>
+<a name="line-820"></a>
+<a name="line-821"></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-822"></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-823"></a>
+<a name="line-824"></a><span class='comment'>-- |</span>
+<a name="line-825"></a><span class='comment'>-- when the predicate p holds, the monadic filter f is applied, else the null filter.</span>
+<a name="line-826"></a><span class='comment'>--</span>
+<a name="line-827"></a><span class='comment'>--    * 1.parameter p :  the simple predicate filter</span>
+<a name="line-828"></a><span class='comment'>--</span>
+<a name="line-829"></a><span class='comment'>--    - 2.parameter f :  the conditionally applied monadic filter</span>
+<a name="line-830"></a><span class='comment'>--</span>
+<a name="line-831"></a><span class='comment'>--    - returns : the conditional filter</span>
+<a name="line-832"></a><span class='comment'>--</span>
+<a name="line-833"></a><span class='comment'>-- see also : 'ifM', 'guards', 'whenM'</span>
+<a name="line-834"></a>
+<a name="line-835"></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-836"></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-837"></a>
+<a name="line-838"></a><span class='comment'>-- |</span>
+<a name="line-839"></a><span class='comment'>-- Filter for editing the children of a tree with a monadic filter</span>
+<a name="line-840"></a><span class='comment'>--</span>
+<a name="line-841"></a><span class='comment'>--    * 1.parameter cf :  the monadic filter applied to the children</span>
+<a name="line-842"></a><span class='comment'>--</span>
+<a name="line-843"></a><span class='comment'>--    - returns : the monadic editing filter</span>
+<a name="line-844"></a><span class='comment'>--</span>
+<a name="line-845"></a><span class='comment'>-- see also : 'processChildren'</span>
+<a name="line-846"></a>
+<a name="line-847"></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-848"></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-849"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-850"></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-851"></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-852"></a>
+<a name="line-853"></a><span class='comment'>-- |</span>
+<a name="line-854"></a><span class='comment'>-- monadic variant of 'processTopDown'</span>
+<a name="line-855"></a>
+<a name="line-856"></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-857"></a><span class='definition'>processTopDownM</span> <span class='varid'>f</span>
+<a name="line-858"></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-859"></a>
+<a name="line-860"></a><span class='comment'>-- |</span>
+<a name="line-861"></a><span class='comment'>-- monadic variant of 'processBottomUp'</span>
+<a name="line-862"></a>
+<a name="line-863"></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-864"></a><span class='definition'>processBottomUpM</span> <span class='varid'>f</span>
+<a name="line-865"></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-866"></a>
+<a name="line-867"></a><span class='comment'>-- |</span>
+<a name="line-868"></a><span class='comment'>-- infix operator for applying a monadic filter to a list of trees,</span>
+<a name="line-869"></a><span class='comment'>-- typically used in do-notation for processing of intermediate results.</span>
+<a name="line-870"></a><span class='comment'>--</span>
+<a name="line-871"></a><span class='comment'>--    * 1.parameter f :  the monadic filter</span>
+<a name="line-872"></a><span class='comment'>--</span>
+<a name="line-873"></a><span class='comment'>--    - 2.parameter ts :  the list of trees</span>
+<a name="line-874"></a><span class='comment'>--</span>
+<a name="line-875"></a><span class='comment'>--    - returns : the concatenated list of results</span>
+<a name="line-876"></a><span class='comment'>--</span>
+<a name="line-877"></a><span class='comment'>-- see also : '($$)'</span>
+<a name="line-878"></a>
+<a name="line-879"></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-880"></a><a name="cmd"></a><span class='definition'>cmd</span> <span class='varop'>$$&lt;</span> <span class='varid'>l</span>
+<a name="line-881"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-882"></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-883"></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-884"></a>
+<a name="line-885"></a><span class='comment'>-- |</span>
+<a name="line-886"></a><span class='comment'>-- lift a filter to a monadic filter</span>
+<a name="line-887"></a><span class='comment'>--</span>
+<a name="line-888"></a><span class='comment'>--    * 1.parameter f :  the /simple/ filter</span>
+<a name="line-889"></a><span class='comment'>--</span>
+<a name="line-890"></a><span class='comment'>--    - returns : the lifted monadic version</span>
+<a name="line-891"></a>
+<a name="line-892"></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-893"></a><span class='definition'>liftMf</span> <span class='varid'>f</span> <span class='varid'>t</span>
+<a name="line-894"></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-895"></a>
+<a name="line-896"></a><span class='comment'>-- |</span>
+<a name="line-897"></a><span class='comment'>-- run an arbitray command on a tree t and return the tree,</span>
+<a name="line-898"></a><span class='comment'>-- used for inserting arbitray commands in a filter pipeline</span>
+<a name="line-899"></a><span class='comment'>--</span>
+<a name="line-900"></a><span class='comment'>--    * 1.parameter cmd :  the command</span>
+<a name="line-901"></a><span class='comment'>--</span>
+<a name="line-902"></a><span class='comment'>--    - 2.parameter t :  the argument tree</span>
+<a name="line-903"></a><span class='comment'>--</span>
+<a name="line-904"></a><span class='comment'>--    - returns : the unchanged tree as a single element list</span>
+<a name="line-905"></a>
+<a name="line-906"></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-907"></a><span class='definition'>performAction</span> <span class='varid'>cmd</span> <span class='varid'>t</span>
+<a name="line-908"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-909"></a>      <span class='varid'>cmd</span> <span class='varid'>t</span>
+<a name="line-910"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>
+<a name="line-911"></a>
+<a name="line-912"></a><span class='comment'>-- eof ------------------------------------------------------------</span>
+</pre></body>
+</html>
diff --git a/doc/hxt-filter/src/Text-XML-HXT-DOM-NamespaceFilter.html b/doc/hxt-filter/src/Text-XML-HXT-DOM-NamespaceFilter.html
--- a/doc/hxt-filter/src/Text-XML-HXT-DOM-NamespaceFilter.html
+++ b/doc/hxt-filter/src/Text-XML-HXT-DOM-NamespaceFilter.html
@@ -24,211 +24,208 @@
 <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'>DOM</span><span class='varop'>.</span><span class='conid'>NamespaceFilter</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'>DOM</span><span class='varop'>.</span><span class='conid'>NamespaceFilter</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'>NamespacePredicates</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'>Text</span><span class='varop'>.</span><span class='conid'>XML</span><span 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-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'>NamespacePredicates</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'>XmlTree</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'>Util</span>
+<a name="line-25"></a>    <span class='layout'>(</span> <span class='varid'>doubles</span> <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'>DOM</span><span class='varop'>.</span><span class='conid'>Util</span>
-<a name="line-28"></a>    <span class='layout'>(</span> <span class='varid'>doubles</span> <span class='layout'>)</span>
+<a name="line-27"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<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'>--</span>
-<a name="line-32"></a>
-<a name="line-33"></a><span class='comment'>-- |</span>
-<a name="line-34"></a><span class='comment'>-- Type for the namespace association list, used when propagating namespaces by</span>
-<a name="line-35"></a><span class='comment'>-- modifying the 'QName' values in a tree</span>
-<a name="line-36"></a>
-<a name="line-37"></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-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'>-- propagate all namespace declarations \"xmlns:ns=...\" to all</span>
-<a name="line-43"></a><span class='comment'>-- tag and attribute nodes of a document.</span>
+<a name="line-30"></a><span class='comment'>-- |</span>
+<a name="line-31"></a><span class='comment'>-- Type for the namespace association list, used when propagating namespaces by</span>
+<a name="line-32"></a><span class='comment'>-- modifying the 'QName' values in a tree</span>
+<a name="line-33"></a>
+<a name="line-34"></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-35"></a>
+<a name="line-36"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-37"></a>
+<a name="line-38"></a><span class='comment'>-- |</span>
+<a name="line-39"></a><span class='comment'>-- propagate all namespace declarations \"xmlns:ns=...\" to all</span>
+<a name="line-40"></a><span class='comment'>-- tag and attribute nodes of a document.</span>
+<a name="line-41"></a><span class='comment'>--</span>
+<a name="line-42"></a><span class='comment'>-- This filter does not check for illegal use of namespaces.</span>
+<a name="line-43"></a><span class='comment'>-- The real work is done by 'propagateNamespaceEnv'.</span>
 <a name="line-44"></a><span class='comment'>--</span>
-<a name="line-45"></a><span class='comment'>-- This filter does not check for illegal use of namespaces.</span>
-<a name="line-46"></a><span class='comment'>-- The real work is done by 'propagateNamespaceEnv'.</span>
-<a name="line-47"></a><span class='comment'>--</span>
-<a name="line-48"></a><span class='comment'>-- The filter may be applied repeatedly if neccessary.</span>
+<a name="line-45"></a><span class='comment'>-- The filter may be applied repeatedly if neccessary.</span>
+<a name="line-46"></a>
+<a name="line-47"></a><a name="propagateNamespaces"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-48"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>=</span> <span class='varid'>propagateNamespaceEnv</span> <span class='varop'>$</span> <span class='varid'>toNsEnv</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-49"></a>
-<a name="line-50"></a><a name="propagateNamespaces"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
-<a name="line-51"></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-52"></a>
-<a name="line-53"></a><span class='comment'>-- |</span>
-<a name="line-54"></a><span class='comment'>-- attaches the namespace info given by the namespace table</span>
-<a name="line-55"></a><span class='comment'>-- to a tag node and its attributes and children.</span>
-<a name="line-56"></a>
-<a name="line-57"></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-58"></a><span class='definition'>propagateNamespaceEnv</span> <span class='varid'>env</span> <span class='varid'>n</span>
-<a name="line-59"></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-60"></a>	  <span class='varop'>.&gt;</span>
-<a name="line-61"></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-62"></a>	  <span class='varop'>.&gt;</span>
-<a name="line-63"></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-64"></a>	<span class='layout'>)</span>
-<a name="line-65"></a>	<span class='varop'>`when`</span>
-<a name="line-66"></a>	<span class='varid'>isXTag</span>
-<a name="line-67"></a>      <span class='layout'>)</span>
-<a name="line-68"></a>      <span class='varop'>$</span> <span class='varid'>n</span>
-<a name="line-69"></a>    <span class='keyword'>where</span>
-<a name="line-70"></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-71"></a>		  <span class='varop'>.&gt;</span>
-<a name="line-72"></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-73"></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-74"></a>				 <span class='varop'>&amp;&amp;</span>
-<a name="line-75"></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-76"></a>				<span class='layout'>)</span>
-<a name="line-77"></a>			     <span class='layout'>)</span>
-<a name="line-78"></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-79"></a>			     <span class='varop'>.</span> <span class='varid'>qualifiedName</span>		<span class='comment'>-- select attribute name</span>
-<a name="line-80"></a>			   <span class='layout'>)</span>
-<a name="line-81"></a>		  <span class='varop'>$</span> <span class='varid'>n</span>
-<a name="line-82"></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-83"></a>			    <span class='varop'>.</span> <span class='varid'>snd</span>			<span class='comment'>-- take the local part with leading ":"</span>
-<a name="line-84"></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-85"></a>			    <span class='varop'>.</span> <span class='varid'>nameOf</span>			<span class='comment'>-- select attribute name</span>
-<a name="line-86"></a>			   <span class='layout'>)</span> <span class='varid'>nsAttrs</span><span class='layout'>)</span>
-<a name="line-87"></a>		      <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>xshow</span>
-<a name="line-88"></a>			    <span class='varop'>.</span>
-<a name="line-89"></a>			    <span class='varid'>getChildren</span>
-<a name="line-90"></a>			   <span class='layout'>)</span> <span class='varid'>nsAttrs</span><span class='layout'>)</span>
-<a name="line-91"></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-92"></a>
-<a name="line-93"></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-94"></a>    <span class='varid'>attachNamespaceUrisToAttr</span> <span class='varid'>attrEnv</span>
-<a name="line-95"></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-96"></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-97"></a>			     <span class='varop'>&amp;&amp;</span>
-<a name="line-98"></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-99"></a>			   <span class='layout'>)</span>
-<a name="line-100"></a>		       <span class='layout'>)</span>
-<a name="line-101"></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-102"></a>		       <span class='varop'>.</span> <span class='varid'>qualifiedName</span>			<span class='comment'>-- select attribute name</span>
-<a name="line-103"></a>		     <span class='layout'>)</span>
-<a name="line-104"></a>	    <span class='varop'>`guards`</span>
-<a name="line-105"></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-106"></a>	  <span class='layout'>)</span>
-<a name="line-107"></a>          <span class='varop'>`orElse`</span>
-<a name="line-108"></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-109"></a>	    <span class='varop'>`when`</span>
-<a name="line-110"></a>	    <span class='varid'>isAttr</span> <span class='varid'>a_xmlns</span>
-<a name="line-111"></a>	  <span class='layout'>)</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><span class='comment'>-- |</span>
-<a name="line-116"></a><span class='comment'>-- validate the namespace constraints in a whole tree.</span>
-<a name="line-117"></a><span class='comment'>-- result is the list of errors concerning namespaces.</span>
-<a name="line-118"></a><span class='comment'>-- Work is done by applying 'validate1Namespaces' to all nodes.</span>
-<a name="line-119"></a><span class='comment'>-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespace'</span>
-<a name="line-120"></a><span class='comment'>-- and 'isWellformedNSDecl' are applied to the appropriate tags and attributes.</span>
-<a name="line-121"></a>
-<a name="line-122"></a><a name="validateNamespaces"></a><span class='definition'>validateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
-<a name="line-123"></a><span class='definition'>validateNamespaces</span>
-<a name="line-124"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span>
-<a name="line-125"></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-126"></a>	     <span class='layout'>,</span> <span class='varid'>this</span>
-<a name="line-127"></a>	       <span class='conop'>:-&gt;</span> <span class='varid'>multi</span> <span class='varid'>validate1Namespaces</span>
-<a name="line-128"></a>	     <span class='keyglyph'>]</span>
+<a name="line-50"></a><span class='comment'>-- |</span>
+<a name="line-51"></a><span class='comment'>-- attaches the namespace info given by the namespace table</span>
+<a name="line-52"></a><span class='comment'>-- to a tag node and its attributes and children.</span>
+<a name="line-53"></a>
+<a name="line-54"></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-55"></a><span class='definition'>propagateNamespaceEnv</span> <span class='varid'>env</span> <span class='varid'>n</span>
+<a name="line-56"></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-57"></a>	  <span class='varop'>.&gt;</span>
+<a name="line-58"></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-59"></a>	  <span class='varop'>.&gt;</span>
+<a name="line-60"></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-61"></a>	<span class='layout'>)</span>
+<a name="line-62"></a>	<span class='varop'>`when`</span>
+<a name="line-63"></a>	<span class='varid'>isXTag</span>
+<a name="line-64"></a>      <span class='layout'>)</span>
+<a name="line-65"></a>      <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-66"></a>    <span class='keyword'>where</span>
+<a name="line-67"></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-68"></a>		  <span class='varop'>.&gt;</span>
+<a name="line-69"></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-70"></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-71"></a>				 <span class='varop'>&amp;&amp;</span>
+<a name="line-72"></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-73"></a>				<span class='layout'>)</span>
+<a name="line-74"></a>			     <span class='layout'>)</span>
+<a name="line-75"></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-76"></a>			     <span class='varop'>.</span> <span class='varid'>qualifiedName</span>		<span class='comment'>-- select attribute name</span>
+<a name="line-77"></a>			   <span class='layout'>)</span>
+<a name="line-78"></a>		  <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-79"></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-80"></a>			    <span class='varop'>.</span> <span class='varid'>snd</span>			<span class='comment'>-- take the local part with leading ":"</span>
+<a name="line-81"></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-82"></a>			    <span class='varop'>.</span> <span class='varid'>nameOf</span>			<span class='comment'>-- select attribute name</span>
+<a name="line-83"></a>			   <span class='layout'>)</span> <span class='varid'>nsAttrs</span><span class='layout'>)</span>
+<a name="line-84"></a>		      <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varid'>xshow</span>
+<a name="line-85"></a>			    <span class='varop'>.</span>
+<a name="line-86"></a>			    <span class='varid'>getChildren</span>
+<a name="line-87"></a>			   <span class='layout'>)</span> <span class='varid'>nsAttrs</span><span class='layout'>)</span>
+<a name="line-88"></a>    <span class='varid'>newEnv</span>	<span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varid'>nsDecl</span><span class='layout'>)</span> <span class='varid'>env</span>
+<a name="line-89"></a>
+<a name="line-90"></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-91"></a>    <span class='varid'>attachNamespaceUrisToAttr</span> <span class='varid'>attrEnv</span>
+<a name="line-92"></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-93"></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-94"></a>			     <span class='varop'>&amp;&amp;</span>
+<a name="line-95"></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-96"></a>			   <span class='layout'>)</span>
+<a name="line-97"></a>		       <span class='layout'>)</span>
+<a name="line-98"></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-99"></a>		       <span class='varop'>.</span> <span class='varid'>qualifiedName</span>			<span class='comment'>-- select attribute name</span>
+<a name="line-100"></a>		     <span class='layout'>)</span>
+<a name="line-101"></a>	    <span class='varop'>`guards`</span>
+<a name="line-102"></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-103"></a>	  <span class='layout'>)</span>
+<a name="line-104"></a>          <span class='varop'>`orElse`</span>
+<a name="line-105"></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-106"></a>	    <span class='varop'>`when`</span>
+<a name="line-107"></a>	    <span class='varid'>isAttr</span> <span class='varid'>a_xmlns</span>
+<a name="line-108"></a>	  <span class='layout'>)</span>
+<a name="line-109"></a>
+<a name="line-110"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-111"></a>
+<a name="line-112"></a><span class='comment'>-- |</span>
+<a name="line-113"></a><span class='comment'>-- validate the namespace constraints in a whole tree.</span>
+<a name="line-114"></a><span class='comment'>-- result is the list of errors concerning namespaces.</span>
+<a name="line-115"></a><span class='comment'>-- Work is done by applying 'validate1Namespaces' to all nodes.</span>
+<a name="line-116"></a><span class='comment'>-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespace'</span>
+<a name="line-117"></a><span class='comment'>-- and 'isWellformedNSDecl' are applied to the appropriate tags and attributes.</span>
+<a name="line-118"></a>
+<a name="line-119"></a><a name="validateNamespaces"></a><span class='definition'>validateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-120"></a><span class='definition'>validateNamespaces</span>
+<a name="line-121"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span>
+<a name="line-122"></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-123"></a>	     <span class='layout'>,</span> <span class='varid'>this</span>
+<a name="line-124"></a>	       <span class='conop'>:-&gt;</span> <span class='varid'>multi</span> <span class='varid'>validate1Namespaces</span>
+<a name="line-125"></a>	     <span class='keyglyph'>]</span>
+<a name="line-126"></a>
+<a name="line-127"></a><span class='comment'>-- |</span>
+<a name="line-128"></a><span class='comment'>-- a single node for namespace constrains.</span>
 <a name="line-129"></a>
-<a name="line-130"></a><span class='comment'>-- |</span>
-<a name="line-131"></a><span class='comment'>-- a single node for namespace constrains.</span>
-<a name="line-132"></a>
-<a name="line-133"></a><a name="validate1Namespaces"></a><span class='definition'>validate1Namespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
-<a name="line-134"></a><span class='definition'>validate1Namespaces</span>
-<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isXTag</span>
-<a name="line-136"></a>	       <span class='conop'>:-&gt;</span>
-<a name="line-137"></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-138"></a>		     <span class='varop'>`guards`</span>
-<a name="line-139"></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-140"></a>
-<a name="line-141"></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-142"></a>		     <span class='varop'>`guards`</span>
-<a name="line-143"></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-144"></a>
-<a name="line-145"></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-146"></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-147"></a>		               <span class='keyword'>in</span>
-<a name="line-148"></a>		               <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>dbls</span>
-<a name="line-149"></a>		               <span class='keyword'>then</span> <span class='varid'>none</span>
-<a name="line-150"></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-151"></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-152"></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-153"></a>					<span class='layout'>)</span>
-<a name="line-154"></a>			     <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n</span>
-<a name="line-155"></a>		     <span class='layout'>)</span>
+<a name="line-130"></a><a name="validate1Namespaces"></a><span class='definition'>validate1Namespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-131"></a><span class='definition'>validate1Namespaces</span>
+<a name="line-132"></a>    <span class='keyglyph'>=</span> <span class='varid'>choice</span> <span class='keyglyph'>[</span> <span class='varid'>isXTag</span>
+<a name="line-133"></a>	       <span class='conop'>:-&gt;</span>
+<a name="line-134"></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-135"></a>		     <span class='varop'>`guards`</span>
+<a name="line-136"></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-137"></a>
+<a name="line-138"></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-139"></a>		     <span class='varop'>`guards`</span>
+<a name="line-140"></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-141"></a>
+<a name="line-142"></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-143"></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-144"></a>		               <span class='keyword'>in</span>
+<a name="line-145"></a>		               <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>dbls</span>
+<a name="line-146"></a>		               <span class='keyword'>then</span> <span class='varid'>none</span>
+<a name="line-147"></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-148"></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-149"></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-150"></a>					<span class='layout'>)</span>
+<a name="line-151"></a>			     <span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>n</span>
+<a name="line-152"></a>		     <span class='layout'>)</span>
+<a name="line-153"></a>
+<a name="line-154"></a>		   <span class='layout'>,</span> <span class='varid'>getAttrl</span> <span class='varop'>.&gt;</span> <span class='varid'>validate1Namespaces</span>
+<a name="line-155"></a>		   <span class='keyglyph'>]</span>
 <a name="line-156"></a>
-<a name="line-157"></a>		   <span class='layout'>,</span> <span class='varid'>getAttrl</span> <span class='varop'>.&gt;</span> <span class='varid'>validate1Namespaces</span>
-<a name="line-158"></a>		   <span class='keyglyph'>]</span>
-<a name="line-159"></a>
-<a name="line-160"></a>	     <span class='layout'>,</span> <span class='varid'>isXAttr</span>
-<a name="line-161"></a>	       <span class='conop'>:-&gt;</span>
-<a name="line-162"></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-163"></a>		     <span class='varop'>`guards`</span>
-<a name="line-164"></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-165"></a>
-<a name="line-166"></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-167"></a>	             <span class='varop'>`guards`</span>
-<a name="line-168"></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-169"></a>
-<a name="line-170"></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-171"></a>		     <span class='varop'>`guards`</span>
-<a name="line-172"></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-173"></a>
-<a name="line-174"></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-175"></a>		     <span class='varop'>`guards`</span>
-<a name="line-176"></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-177"></a>	           <span class='keyglyph'>]</span>
-<a name="line-178"></a>
-<a name="line-179"></a>             <span class='layout'>,</span> <span class='varid'>isXDTD</span>
-<a name="line-180"></a>	       <span class='conop'>:-&gt;</span>
-<a name="line-181"></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-182"></a>		       <span class='varop'>.&gt;</span>
-<a name="line-183"></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-184"></a>		     <span class='layout'>)</span>
-<a name="line-185"></a>		     <span class='varop'>`guards`</span>
-<a name="line-186"></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-187"></a>
-<a name="line-188"></a>		   <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>isAttlist</span>
-<a name="line-189"></a>		       <span class='varop'>.&gt;</span>
-<a name="line-190"></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-191"></a>		     <span class='layout'>)</span>
-<a name="line-192"></a>		     <span class='varop'>`guards`</span>
-<a name="line-193"></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-194"></a>
-<a name="line-195"></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-196"></a>		       <span class='varop'>.&gt;</span>
-<a name="line-197"></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-198"></a>		     <span class='layout'>)</span>
-<a name="line-199"></a>                     <span class='varop'>`guards`</span>
-<a name="line-200"></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-201"></a>		   <span class='keyglyph'>]</span>
-<a name="line-202"></a>             <span class='layout'>,</span> <span class='varid'>isXPi</span>
-<a name="line-203"></a>	       <span class='conop'>:-&gt;</span>
-<a name="line-204"></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-205"></a>	         <span class='varop'>`guards`</span>
-<a name="line-206"></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-207"></a>	       <span class='layout'>)</span>
-<a name="line-208"></a>	     <span class='keyglyph'>]</span>
-<a name="line-209"></a>
-<a name="line-210"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
-<a name="line-211"></a>
-<a name="line-212"></a><a name="isNamespaceDecl"></a><span class='definition'>isNamespaceDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
-<a name="line-213"></a><span class='definition'>isNamespaceDecl</span>
-<a name="line-214"></a>    <span class='keyglyph'>=</span> <span class='varid'>isOfAttr</span> <span class='varid'>xmlnsName</span>
-<a name="line-215"></a>      <span class='keyword'>where</span>
-<a name="line-216"></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-217"></a>      <span class='varid'>xmlnsName</span> <span class='varid'>a</span>
-<a name="line-218"></a>	  <span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>
-<a name="line-219"></a>	    <span class='varop'>&amp;&amp;</span>
-<a name="line-220"></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-221"></a>	  <span class='keyword'>where</span>
-<a name="line-222"></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-223"></a>
-<a name="line-224"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-157"></a>	     <span class='layout'>,</span> <span class='varid'>isXAttr</span>
+<a name="line-158"></a>	       <span class='conop'>:-&gt;</span>
+<a name="line-159"></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-160"></a>		     <span class='varop'>`guards`</span>
+<a name="line-161"></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-162"></a>
+<a name="line-163"></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-164"></a>	             <span class='varop'>`guards`</span>
+<a name="line-165"></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-166"></a>
+<a name="line-167"></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-168"></a>		     <span class='varop'>`guards`</span>
+<a name="line-169"></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-170"></a>
+<a name="line-171"></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-172"></a>		     <span class='varop'>`guards`</span>
+<a name="line-173"></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-174"></a>	           <span class='keyglyph'>]</span>
+<a name="line-175"></a>
+<a name="line-176"></a>             <span class='layout'>,</span> <span class='varid'>isXDTD</span>
+<a name="line-177"></a>	       <span class='conop'>:-&gt;</span>
+<a name="line-178"></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-179"></a>		       <span class='varop'>.&gt;</span>
+<a name="line-180"></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-181"></a>		     <span class='layout'>)</span>
+<a name="line-182"></a>		     <span class='varop'>`guards`</span>
+<a name="line-183"></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-184"></a>
+<a name="line-185"></a>		   <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>isAttlist</span>
+<a name="line-186"></a>		       <span class='varop'>.&gt;</span>
+<a name="line-187"></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-188"></a>		     <span class='layout'>)</span>
+<a name="line-189"></a>		     <span class='varop'>`guards`</span>
+<a name="line-190"></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-191"></a>
+<a name="line-192"></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-193"></a>		       <span class='varop'>.&gt;</span>
+<a name="line-194"></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-195"></a>		     <span class='layout'>)</span>
+<a name="line-196"></a>                     <span class='varop'>`guards`</span>
+<a name="line-197"></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-198"></a>		   <span class='keyglyph'>]</span>
+<a name="line-199"></a>             <span class='layout'>,</span> <span class='varid'>isXPi</span>
+<a name="line-200"></a>	       <span class='conop'>:-&gt;</span>
+<a name="line-201"></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-202"></a>	         <span class='varop'>`guards`</span>
+<a name="line-203"></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-204"></a>	       <span class='layout'>)</span>
+<a name="line-205"></a>	     <span class='keyglyph'>]</span>
+<a name="line-206"></a>
+<a name="line-207"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
+<a name="line-208"></a>
+<a name="line-209"></a><a name="isNamespaceDecl"></a><span class='definition'>isNamespaceDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlFilter</span>
+<a name="line-210"></a><span class='definition'>isNamespaceDecl</span>
+<a name="line-211"></a>    <span class='keyglyph'>=</span> <span class='varid'>isOfAttr</span> <span class='varid'>xmlnsName</span>
+<a name="line-212"></a>      <span class='keyword'>where</span>
+<a name="line-213"></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-214"></a>      <span class='varid'>xmlnsName</span> <span class='varid'>a</span>
+<a name="line-215"></a>	  <span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>
+<a name="line-216"></a>	    <span class='varop'>&amp;&amp;</span>
+<a name="line-217"></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-218"></a>	  <span class='keyword'>where</span>
+<a name="line-219"></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-220"></a>
+<a name="line-221"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/doc/hxt-filter/src/Text-XML-HXT-DOM-XmlTreeTypes.html b/doc/hxt-filter/src/Text-XML-HXT-DOM-XmlTreeTypes.html
new file mode 100644
--- /dev/null
+++ b/doc/hxt-filter/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/hxt-filter/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html b/doc/hxt-filter/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
--- a/doc/hxt-filter/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
+++ b/doc/hxt-filter/src/Text-XML-HXT-Parser-ProtocolHandlerHttpNative.html
@@ -51,109 +51,111 @@
 <a name="line-43"></a><span class='comment'>--</span>
 <a name="line-44"></a><span class='comment'>-- the native http protocol handler</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 http protocol handler, haskell implementation</span>
-<a name="line-49"></a>
-<a name="line-50"></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-51"></a><span class='definition'>getHttpContentsWithHttp</span> <span class='varid'>uri</span> <span class='varid'>n</span>
-<a name="line-52"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
-<a name="line-53"></a>      <span class='varid'>traceLevel</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getTraceLevel</span>
-<a name="line-54"></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-55"></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-56"></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-57"></a>      <span class='keyword'>case</span> <span class='varid'>res</span> <span class='keyword'>of</span>
-<a name="line-58"></a>	       <span class='conid'>Left</span> <span class='varid'>e</span>
-<a name="line-59"></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-60"></a>				<span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
-<a name="line-61"></a>				<span class='varop'>++</span> <span class='str'>": "</span>
-<a name="line-62"></a>				<span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>
-<a name="line-63"></a>				<span class='varop'>++</span> <span class='str'>" (perhaps server does not understand HTTP/1.1) "</span>
-<a name="line-64"></a>			      <span class='layout'>)</span>
-<a name="line-65"></a>	       <span class='conid'>Right</span> <span class='varid'>response</span>
-<a name="line-66"></a>		   <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
-<a name="line-67"></a>		      <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>convertResponseHeaders</span> <span class='varid'>response</span>
-<a name="line-68"></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-69"></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-70"></a>		      <span class='keyword'>in</span>
-<a name="line-71"></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-72"></a>			 <span class='keyword'>then</span>
-<a name="line-73"></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-74"></a>			 <span class='keyword'>else</span> 
-<a name="line-75"></a>			 <span class='varid'>readErr</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='layout'>(</span><span class='varid'>show</span> <span class='varid'>uri</span><span class='layout'>)</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'>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-84"></a>
-<a name="line-85"></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-86"></a>    <span class='varid'>getHttp</span> <span class='varid'>trc'</span> <span class='varid'>uri'</span> <span class='varid'>proxy'</span>
-<a name="line-87"></a>	<span class='keyglyph'>=</span> <span class='varid'>withSocketsDo</span> <span class='varop'>$</span>
-<a name="line-88"></a>	  <span class='varid'>browse</span> <span class='layout'>(</span> <span class='keyword'>do</span>
-<a name="line-89"></a>		   <span class='varid'>setOutHandler</span> <span class='layout'>(</span><span class='varid'>trcFct</span><span class='layout'>)</span>
-<a name="line-90"></a>		   <span class='varid'>setErrHandler</span> <span class='layout'>(</span><span class='varid'>trcFct</span><span class='layout'>)</span>
-<a name="line-91"></a>
-<a name="line-92"></a>		   <span class='varid'>setProxy'</span> <span class='varid'>proxy'</span>
-<a name="line-93"></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-94"></a>		   <span class='varid'>return</span> <span class='varid'>rsp</span>
-<a name="line-95"></a>		 <span class='layout'>)</span>
-<a name="line-96"></a>	<span class='keyword'>where</span>
-<a name="line-97"></a>	<span class='varid'>trcFct</span> <span class='varid'>s</span>
-<a name="line-98"></a>	    <span class='keyglyph'>|</span> <span class='varid'>trc'</span> <span class='varop'>&gt;=</span> <span class='num'>5</span>
-<a name="line-99"></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-100"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-101"></a>		<span class='keyglyph'>=</span> <span class='varid'>return</span> <span class='conid'>()</span>
-<a name="line-102"></a>
-<a name="line-103"></a>	<span class='varid'>rq</span> <span class='keyglyph'>=</span> <span class='varid'>defaultGETRequest</span> <span class='varid'>uri'</span>
-<a name="line-104"></a>	
-<a name="line-105"></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-106"></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-107"></a>
-<a name="line-108"></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-109"></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-110"></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-111"></a>
-<a name="line-112"></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-113"></a>    <span class='varid'>convertResponseHeaders</span> <span class='varid'>r'</span>
-<a name="line-114"></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-115"></a>	  <span class='varop'>++</span>
-<a name="line-116"></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-117"></a>          <span class='varop'>++</span>
-<a name="line-118"></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-119"></a>	<span class='keyword'>where</span>
-<a name="line-120"></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-121"></a>	<span class='varid'>cvResponseCode</span> <span class='varid'>st'</span>
-<a name="line-122"></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-123"></a>	      <span class='varop'>++</span>
-<a name="line-124"></a>	      <span class='varid'>xattr</span> <span class='varid'>transferVersion</span> <span class='varid'>httpVersion</span>
-<a name="line-125"></a>
-<a name="line-126"></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-127"></a>	<span class='varid'>cvResponseReason</span> <span class='varid'>r''</span>
-<a name="line-128"></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-129"></a>
-<a name="line-130"></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-131"></a>	<span class='varid'>cvResponseHeaders</span>
-<a name="line-132"></a>	    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>cvResponseHeader</span>
-<a name="line-133"></a>
-<a name="line-134"></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-135"></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-136"></a>	    <span class='keyglyph'>|</span> <span class='varid'>name</span> <span class='varop'>==</span> <span class='conid'>HdrContentType</span>
-<a name="line-137"></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-138"></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-139"></a>		    <span class='conid'>Left</span>  <span class='keyword'>_</span>   <span class='keyglyph'>-&gt;</span> <span class='conid'>[]</span>
-<a name="line-140"></a>		  <span class='layout'>)</span>
-<a name="line-141"></a>                  <span class='varop'>++</span>
-<a name="line-142"></a>		  <span class='varid'>addHttpAttr</span>
-<a name="line-143"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>
-<a name="line-144"></a>		<span class='keyglyph'>=</span> <span class='varid'>addHttpAttr</span>
-<a name="line-145"></a>	    <span class='keyword'>where</span>
-<a name="line-146"></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-147"></a>
-<a name="line-148"></a>
-<a name="line-149"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-46"></a><a name="ResponseString"></a><span class='keyword'>type</span> <span class='conid'>ResponseString</span>	<span class='keyglyph'>=</span> <span class='conid'>Response</span> <span class='conid'>String</span>
+<a name="line-47"></a>
+<a name="line-48"></a><span class='comment'>-- ------------------------------------------------------------</span>
+<a name="line-49"></a><span class='comment'>--</span>
+<a name="line-50"></a><span class='comment'>-- the http protocol handler, haskell implementation</span>
+<a name="line-51"></a>
+<a name="line-52"></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-53"></a><span class='definition'>getHttpContentsWithHttp</span> <span class='varid'>uri</span> <span class='varid'>n</span>
+<a name="line-54"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>
+<a name="line-55"></a>      <span class='varid'>traceLevel</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getTraceLevel</span>
+<a name="line-56"></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-57"></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-58"></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-59"></a>      <span class='keyword'>case</span> <span class='varid'>res</span> <span class='keyword'>of</span>
+<a name="line-60"></a>	       <span class='conid'>Left</span> <span class='varid'>e</span>
+<a name="line-61"></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-62"></a>				<span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>uri</span>
+<a name="line-63"></a>				<span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-64"></a>				<span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>
+<a name="line-65"></a>				<span class='varop'>++</span> <span class='str'>" (perhaps server does not understand HTTP/1.1) "</span>
+<a name="line-66"></a>			      <span class='layout'>)</span>
+<a name="line-67"></a>	       <span class='conid'>Right</span> <span class='varid'>response</span>
+<a name="line-68"></a>		   <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>
+<a name="line-69"></a>		      <span class='varid'>al</span> <span class='keyglyph'>=</span> <span class='varid'>convertResponseHeaders</span> <span class='varid'>response</span>
+<a name="line-70"></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-71"></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-72"></a>		      <span class='keyword'>in</span>
+<a name="line-73"></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-74"></a>			 <span class='keyword'>then</span>
+<a name="line-75"></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-76"></a>			 <span class='keyword'>else</span> 
+<a name="line-77"></a>			 <span class='varid'>readErr</span> <span class='layout'>(</span> <span class='str'>"http error when accessing URI "</span>
+<a name="line-78"></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-79"></a>				   <span class='varop'>++</span> <span class='str'>": "</span>
+<a name="line-80"></a>				   <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>st</span>
+<a name="line-81"></a>				   <span class='varop'>++</span> <span class='str'>" "</span>
+<a name="line-82"></a>				   <span class='varop'>++</span> <span class='varid'>rspReason</span> <span class='varid'>response</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>    <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-86"></a>
+<a name="line-87"></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'>ResponseString</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> <span class='varop'>&gt;=</span> <span class='num'>5</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'>"-- ("</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-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'>ResponseString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</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='conid'>XmlTrees</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='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-125"></a>	      <span class='varop'>++</span>
+<a name="line-126"></a>	      <span class='varid'>xattr</span> <span class='varid'>transferVersion</span> <span class='varid'>httpVersion</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='conid'>XmlTrees</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='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-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='conid'>XmlTrees</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='conid'>XmlTrees</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'>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-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='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-149"></a>
+<a name="line-150"></a>
+<a name="line-151"></a><span class='comment'>-- ------------------------------------------------------------</span>
 </pre></body>
 </html>
diff --git a/hxt-filter.cabal b/hxt-filter.cabal
--- a/hxt-filter.cabal
+++ b/hxt-filter.cabal
@@ -1,6 +1,6 @@
 -- arch-tag: Haskell XML Toolbox main description file
 name: hxt-filter
-version: 8.2.0
+version: 8.3.0
 license: OtherLicense
 license-file: LICENCE
 maintainer: Uwe Schmidt <uwe@fh-wedel.de>
@@ -9,13 +9,14 @@
 synopsis: A collection of tools for processing XML with Haskell (Filter variant). 
 description:  The Haskell XML Toolbox bases on the ideas of HaXml and HXML. This package is a compatibitlity package for old software working with the filter approach like in HaXml. For new projects it's recomended to use the arrow based library (hxt).
 homepage: http://www.fh-wedel.de/~si/HXmlToolbox/index.html
-copyright: Copyright (c) 2005-8 Uwe Schmidt
+copyright: Copyright (c) 2005-2009 Uwe Schmidt
 build-type: Simple
 cabal-version: >=1.6
 
 library
  exposed-modules:
   Control.Monad.MonadStateIO,
+  Data.Tree.NTree.Filter,
   System.PipeOpen,
   Text.XML.HXT.DOM,
   Text.XML.HXT.DOM.EditFilters,
@@ -25,6 +26,7 @@
   Text.XML.HXT.DOM.XmlTree,
   Text.XML.HXT.DOM.XmlTreeFilter,
   Text.XML.HXT.DOM.XmlTreeFunctions,
+  Text.XML.HXT.DOM.XmlTreeTypes,
   Text.XML.HXT.Parser,
   Text.XML.HXT.Parser.DTDProcessing,
   Text.XML.HXT.Parser.DefaultURI,
@@ -59,7 +61,7 @@
                 parsec     >= 2.1 && < 3,
                 HUnit      >= 1.2,
                 network    >= 2.1,
-                HTTP       >= 3001.1,
+                HTTP       >= 4000.0.4 && < 5000,
                 process    >= 1.0.1,
-                hxt        >= 8.2
+                hxt        >= 8.3
 
diff --git a/src/Data/Tree/NTree/Filter.hs b/src/Data/Tree/NTree/Filter.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Tree/NTree/Filter.hs
@@ -0,0 +1,912 @@
+-- ------------------------------------------------------------
+
+{- |
+   Module     : Data.Tree.NTree.Filter
+   Copyright  : Copyright (C) 2005 Uwe Schmidt
+   License    : MIT
+
+   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
+   Stability  : stable
+   Portability: portable
+
+   Filter for n-ary tree structure with filter combinators
+   copied and modified from HaXml (<http://www.cs.york.ac.uk/fp/HaXml/>)
+
+   Similar but more flexible functions for tree processing are defined in the
+   arrow classes "Control.Arrow.ArrowList", "Control.Arrow.ArrowIf", "Control.Arrow.ArrowTree" and "Control.Arrow.ArrowState".
+   For new applications, especially for XML processing, it's recommended to use the arrow interface
+   "Text.XML.HXT.Arrow" instead of this filter approach as part of the api "Text.XML.HXT.Parser"
+
+-}
+
+-- ------------------------------------------------------------
+
+module Data.Tree.NTree.Filter
+    ( module Data.Tree.NTree.TypeDefs
+    , TFilter
+    , TSFilter
+    , satisfies
+
+    -- * Filter
+    , none		-- simple filter
+    , this
+
+    , isOf
+    , isOfNode		-- predicate filter
+
+    , mkNTree		-- contructor filter
+
+    , replaceNode	-- simple editing
+    , replaceChildren
+
+    , modifyNode
+    , modifyNode0
+    , modifyChildren
+    , substChildren
+    , processChildren	-- filter combinators
+
+    , o
+    , (.>)
+    , seqF
+    , (..>)
+    , (+++)
+    , cat
+
+    , orElse		-- choices
+    , iff		-- if then else filter
+    , choice
+    , IfThen(..)
+    , when
+    , whenNot
+    , guards
+    , neg		-- negation
+    , containing	-- previous: with, but with is keyword in haskell extensions
+    , notContaining	-- previous: without
+
+    , (/>)		-- selectors
+    , (</)
+    , deep		-- recursive search
+    , deepest
+    , multi
+    , processBottomUp	-- recursive editing
+    , processBottomUpIfNot
+    , processTopDown
+    , processTopDownUntil
+    , insertChildrenAt
+    , insertChildrenAfter
+
+      -- * Monadic Filter
+    , thisM		-- monadic filter
+    , noneM
+    , (.>>)		-- monadic composition
+    , seqM		-- generalisation of .>>
+    , (+++>>)		-- monadic parallel combination, monadic +++
+    , catM		-- monadic form of cat
+    , ifM		-- monadic if then else
+    , choiceM		-- monadic choice
+    , whenM		-- special monadic ifs
+    , whenNotM
+    , guardsM
+    , containingM
+    , processChildrenM	-- monadic versions of recursive editing
+    , processTopDownM
+    , processBottomUpM
+    , liftMf		-- lift a normal filter to a monadic filter
+    , ($$)		-- apply a filter to a list
+    , ($$<)		-- apply a monad filter to a list
+    , performAction	-- run a command within a filter
+    )
+
+where
+
+
+import Data.Tree.NTree.TypeDefs
+
+infixl 6 `containing`, `notContaining`, `containingM`
+infixr 5 `o`, +++, +++>>
+infixl 5 />, </, `orElse`, .>, ..>, .>>
+infixr 4 `when`, `whenNot`, `guards`, `whenM`, `whenNotM`, `guardsM`
+infixr 3 :->
+infixr 0 $$, $$<
+
+-- |
+-- tree filter type: a function mapping a tree onto a list of trees
+--
+-- filter can be used in various ways, as predicates, selectors, transformers, ...
+
+type TFilter  node	= NTree  node -> NTrees node
+
+-- |
+-- a filter for sequences
+
+type TSFilter node	= NTrees node -> NTrees node
+
+-- ------------------------------------------------------------
+
+-- |
+-- satisfies converts a result of a predicate filter into a boolean
+--
+-- is a shortcut for not . null
+--
+-- typical use in guards or ifs: @if (satisfies f) t then ... else ... @
+--
+--    * 1.parameter f :  the predicate filter
+--
+--    - 2.parameter t :  the tree to be tested
+--
+--    - returns : @b = not (null (f t))@
+
+satisfies	:: (a -> [b]) -> a -> Bool
+satisfies f	= not . null . f
+
+-- ------------------------------------------------------------
+--
+-- simple filter
+
+-- |
+-- the null filter, returns the empty list
+
+none		:: a -> [b]
+none _		= []
+
+-- |
+-- the unit filter, returns the single element list containing the argument
+
+this		:: a -> [a]
+this n		= [n]
+
+-- ------------------------------------------------------------
+--
+-- selecting filter
+
+-- |
+-- conversion from predicate function to filter
+--
+--    * 1.parameter p :  the predicate for testing the tree
+--
+--    - returns : 'this' or 'none' depending on the predicate
+
+isOf		:: (a -> Bool) -> (a -> [a])
+isOf p t
+    = if p t then [t] else []
+
+-- |
+-- select filter, selects trees with node values with a specific property
+--
+--    * 1.parameter p :  the predicate for testing the node value
+--
+--    - returns : @[]@ or @[t]@ depending on @p t@
+--
+-- a special case of 'isOf' filter
+
+isOfNode	:: (node -> Bool) -> TFilter node
+isOfNode p	= isOf (p . getNode)
+
+-- ------------------------------------------------------------
+--
+-- simple editing filters
+
+-- |
+-- filter for substituting an arbitray tree by a constant
+--
+--    * 1.parameter t :  the result tree, the input tree is ignored
+--
+--    - returns : the filter
+
+mkNTree		:: NTree node -> TFilter node
+mkNTree t	= const [t]
+
+-- |
+-- filter for replacing the node
+--
+--    * 1.parameter n :  the new node
+--
+--    - returns : the editing filter
+
+replaceNode	:: node -> TFilter node
+replaceNode n (NTree _ cs)
+    = [NTree n cs]
+
+-- |
+-- filter for replacing the children
+--
+--    * 1.parameter cs :  cs the list of children
+--
+--    - returns : the filter
+
+replaceChildren	:: NTrees node -> TFilter node
+replaceChildren cs (NTree n _)
+    = [NTree n cs]
+
+modifyNode	:: (node -> Maybe node) -> TFilter node
+modifyNode tf (NTree n cs)
+    = maybe [] (\ n' -> [NTree n' cs]) (tf n)
+
+-- |
+-- filter for editing the node
+--
+--    * 1.parameter nf :  the XNode editing funtion
+--
+--    - returns : the filter
+
+modifyNode0	:: (node -> node) -> TFilter node
+modifyNode0 tf	= modifyNode (Just . tf)
+
+-- |
+-- filter for editing the children
+--
+-- all children are processed with a filter mapping lists to lists,
+-- this enables not only elementwise editing by lifting a normal
+-- filter to a list filter with @(f $$)@ (see '($$)') but also manipulation
+-- of the order of the elements, e.g. "reverse" is an appropriate childen
+-- editing function.
+--
+--    * 1.parameter csf :  the children editing function
+--
+--    - returns : the filter
+--
+-- see also : 'processChildren'
+
+modifyChildren	:: TSFilter node -> TFilter node
+modifyChildren f -- (NTree n cs)
+    -- = [NTree n (f cs)]
+    = substChildren (f . getChildren)
+
+-- |
+-- filter for substituting the children of a tree by
+-- a new list of childen computed by applying a filter to the input tree.
+-- 'modifyChildren' can be expressed by 'substChildren':
+-- @modifyChildren f t@ is equal to @substChildren (f . getChildren)@
+
+substChildren	:: TFilter node -> TFilter node
+substChildren f t@(NTree n _cs)
+    = [NTree n (f t)]
+
+-- ------------------------------------------------------------
+--
+-- combinators (copied from HaXml)
+--
+
+-- |
+-- sequential composition of filters, usually written in infix notation f2 `o` f1.
+--
+-- for predicate filter the logical AND
+--
+--    * 1.parameter f2 :  the 2. filter
+--
+--    - 2.parameter f1 :  the 1. filter
+--
+--    - returns : the fiter applying first f1 to n and then f2 to the result (like function composition)
+
+o		:: (a -> [b]) -> (c -> [a]) -> (c -> [b])
+f `o` g		= concatMap f . g
+
+-- |
+-- pronounced \"followed by\", defined as: @f .> g = g \`o\` f@.
+--
+-- allows filter composition in a more readable way from left to right
+--
+--    * 1.parameter f1 :  the 1. filter
+--
+--    - 2.parameter f2 :  the 2. filter
+--
+--    - returns : the composition of f1 and f2
+--
+-- see also : 'o', '(..>)'
+
+(.>)		:: (a -> [b]) -> (b -> [c]) -> (a -> [c])
+f .> g		= g `o` f
+
+-- |
+-- apply a list of filters sequentially with '(.>)', for predicate filters the generalized AND
+--
+-- see also : '(.>)'
+
+seqF		:: [a -> [a]] -> (a -> [a])
+seqF		= foldl (.>) this
+
+-- |
+-- binary parallel composition, the logical OR for predicate filter
+--
+--    * 1.parameter f1 :  the 1. filter
+--
+--    - 2.parameter f2 :  the 2. filter
+--
+--    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results
+
+(+++)		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])
+f +++ g		= \ t -> f t ++ g t
+
+-- |
+-- special sequential composition.
+--
+-- filter f is applied to an argument t.
+-- then filter g is applied to all elements of the result list,
+-- but the argument t is also passed as extra parameter to g.
+--
+-- This allows for step by step transformations of a tree
+-- with access to the original tree in every
+-- transformation step.
+--
+-- see also : '(.>)', 'o'
+
+(..>)		:: (a -> [b]) -> (a -> b -> [d]) -> (a -> [d])
+f ..> g		= \ t -> (g t `o` f) t
+
+-- |
+-- apply a list of filters, a \"union\" for lists, for predicate filters the generalized OR
+--
+--    * 1.parameter fs :  the list of filters
+--
+--    - returns : the composing filter
+
+cat		:: [a -> [b]] -> (a -> [b])
+cat fs  t
+    = concat [ f t | f <- fs ]
+
+-- |
+-- Filter for editing the children of a tree element wise
+--
+--    * 1.parameter cf :  the filter applied to the children
+--
+--    - returns : the editing filter
+--
+-- see also : 'modifyChildren'
+
+processChildren	:: TFilter node -> TFilter node
+processChildren ft (NTree n cs)
+    = [NTree n (ft $$ cs)]
+
+-- |
+-- infix operator for applying a filter to a list of trees
+--
+--    * 1.parameter f :  the filter
+--
+--    - 2.parameter ts :  the list of trees
+--
+--    - returns : the concatenated list of results
+
+($$)		:: (a -> [b]) -> [a] -> [b]
+f $$ l
+    = concatMap f l
+
+-- ------------------------------------------------------------
+--
+-- choices
+--
+
+-- |
+-- directional choice, usually written in infix notation as f `orElse` g
+--
+--    * 1.parameter f :  the 1. filter
+--
+--    - 2.parameter g :  the 2. filter
+--
+--    - 3.parameter t :  the tree
+--
+--    - returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result
+
+orElse		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])
+f `orElse` g
+    = \ t-> let
+	    res = f t
+	    in
+	    if null res
+	    then g t
+	    else res
+
+-- |
+-- if then else lifted to filters
+--
+--    * 1.parameter p :  the predicate filter
+--
+--    - 2.parameter t :  the \"then\" filter
+--
+--    - 3.parameter e :  the \"else\" filter
+--
+--    - returns : the resulting conditional filter
+
+iff		:: (a -> [c]) -> (a -> [b]) -> (a -> [b]) -> (a -> [b])
+iff p f g	= \ c -> if (satisfies p) c then f c else g c
+
+-- |
+-- when the predicate p holds, f is applied, else the identity filter this
+--
+--    * 1.parameter f :  the conditinally applied filter
+--
+--    - 2.parameter p :  the predicate
+--
+--    - returns : the conditional filter
+--
+-- see also : 'iff', 'whenNot', 'guards', 'whenM'
+
+when		:: (a -> [a]) -> (a -> [a]) -> (a -> [a])
+f `when` g	= iff g f this
+
+-- |
+-- the complementary filter of when
+--
+-- shortcut for f `when` neg g
+--
+-- see also : 'iff', 'when', 'whenNotM', 'neg'
+
+whenNot		:: (a -> [a]) -> (a -> [a]) -> (a -> [a])
+f `whenNot` g	= iff g this f
+
+-- |
+-- when the predicate p holds, f is applied, else the null filter none
+--
+--    * 1.parameter p :  the predicate filter
+--
+--    - 2.parameter f :  the conditionally applied filter
+--
+--    - returns : the conditional filter
+--
+-- see also : 'iff', 'when', 'guardsM'
+
+guards		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])
+g `guards` f	= iff g f none
+
+
+-- |
+-- negation lifted to filters
+--
+--    * 1.parameter f :  the predicate filter
+--
+--    - returns : the filter, that succeeds, when f failed
+
+neg		:: (a -> [c]) -> a -> [a]
+neg f		= iff f none this
+
+-- |
+-- auxiliary datatype for cases within choice filter
+
+data IfThen a b = a :-> b
+
+-- |
+-- multiway branch. The list of cases @f :-> g@ is processed sequentially,
+-- in the first case for that f holds g is applied, if no case matches, 'none' is
+-- applied.
+-- This filter can be used like a case expression: @choice [ p1 :-> f1, p2 :-> f2, ... , this :-> defaultFilter]@
+--
+-- see also : 'iff', 'choiceM'
+
+choice	:: [IfThen (a -> [c]) (a -> [b])] -> (a -> [b])
+choice []
+    = none
+
+choice ((g :-> f) : cs)
+    = iff g f (choice cs)
+
+-- |
+-- pruning: keep only those results from f for which g holds, usually written in infix notation as f `containing` g
+--
+--    * 1.parameter f :  the processing filter
+--
+--    - 2.parameter g :  the predicate filter
+--
+--    - 3.parameter t :  the tree
+--
+--    - returns : all trees r from f t, for which g r holds (is not the empty list)
+--
+-- see also : 'notContaining'
+
+containing		:: (a -> [b]) -> (b -> [c]) -> a -> [b]
+f `containing` g
+    = filter (satisfies g) . f
+
+-- |
+-- pruning: keep only those results from f for which g does not hold
+--
+-- see also : 'containing'
+
+notContaining		:: (a -> [b]) -> (b -> [c]) -> a -> [b]
+f `notContaining` g
+    = filter (null . g) . f
+
+-- |
+-- pruning: monadic version of containing, usually written in infix notation as f `containingM` g
+--
+--    * 1.parameter f :  the monadic processing filter
+--
+--    - 2.parameter g :  the predicate filter
+--
+--    - 3.parameter t :  the tree
+--
+--    - returns : all trees r from f t, for which g r holds (is not the empty list)
+--
+-- see also : 'notContaining'
+
+containingM		:: Monad m => (a -> m [b]) -> (b -> [c]) -> a -> m [b]
+f `containingM` g
+    = \ t -> do
+             res <- f t
+             return $ filter (satisfies g) res
+
+-- |
+-- pronounced \"slash\", meaning g inside f
+
+(/>)		:: TFilter node -> TFilter node -> TFilter node
+f /> g
+    = g `o` getChildren `o` f
+
+-- |
+-- pronounced \"outside\" meaning f containing g
+
+(</)		:: TFilter node -> TFilter node -> TFilter node
+f </ g
+    = f `containing` (g `o` getChildren)
+
+-- ------------------------------------------------------------
+--
+-- recursive search filters
+
+-- |
+-- top down search.
+--
+-- search terminates, when filter f succeeds
+-- can e.g. be used for finding all outermost tag node of a specific kind
+
+deep		:: TFilter node -> TFilter node
+deep f
+    = f `orElse` (deep f `o` getChildren)
+
+-- |
+-- bottom up search.
+--
+-- first the children are processed,
+-- if this does not succeed, the node itself is processed
+-- can e.g. be used for finding all innermost tag nodes of a specific kind
+
+deepest		:: TFilter node -> TFilter node
+deepest f
+    = (getChildren .> deepest f) `orElse` f
+
+-- |
+-- process all nodes of the whole tree.
+--
+-- can e.g. be used for finding all nodes of a specific kind
+
+multi		:: TFilter node -> TFilter node
+multi f
+    = f +++ (getChildren .> multi f)
+
+-- ------------------------------------------------------------
+--
+-- recursive transformation filters
+--
+
+-- |
+-- bottom up transformation
+--
+--    * 1.parameter f :  the /simple/ transforming filter
+--
+--    - returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner
+--
+-- see also : 'processTopDown', 'processBottomUpIfNot'
+
+processBottomUp	:: TFilter node -> TFilter node
+processBottomUp f
+    = processChildren (processBottomUp f) .> f
+
+-- |
+-- top down transformation
+--
+--    * 1.parameter f :  the /simple/ transforming filter
+--
+--    - returns : the filter that applies f first to the tree and then recursively to all subtrees of the result
+--
+-- see also : 'processBottomUp'
+
+processTopDown	:: TFilter node -> TFilter node
+processTopDown f
+    = f .> processChildren (processTopDown f)
+
+-- |
+-- guarded bottom up transformation, stops at subtrees for which a predicate p holds
+--
+--    * 1.parameter f :  the transforming filter
+--
+--    - 2.parameter p :  the predicate filter for the guard
+--
+--    - returns : the filter for processing all (sub-)trees
+--
+-- see also : 'processBottomUp'
+
+processBottomUpIfNot	:: TFilter node -> TFilter node -> TFilter node
+processBottomUpIfNot f p
+    = (processChildren (processBottomUpIfNot f p) .> f) `whenNot` p
+
+-- |
+-- top down transformation until a node to be transformed is found
+--
+--    * 1.parameter f :  the /simple/ transforming filter
+--
+--    - returns : the filter that applies f first to the tree and, if the filter does not succeed,
+--		  recursively to all children of the input tree.
+--
+-- Example:
+--
+-- @processTopDownUntil none@
+--
+-- is the identity filter (maybe a bit more inefficient).
+--
+-- Example:
+--
+-- @processTopDownUntil (add1Attr \"border\" \"2\" \`containing\` isTag \"table\")@
+--
+-- is a filter for adding an attribute border=\"2\" in all top level table tags.
+--		  The content of table tags will remain unchanged.
+--
+-- see also : 'processTopDown', 'processBottomUp'
+
+processTopDownUntil	:: TFilter node -> TFilter node
+processTopDownUntil f t
+    | null res
+	= processChildren (processTopDownUntil f) t
+    | otherwise
+	= res
+    where
+    res = f t
+
+-- ------------------------------------------------------------
+--
+
+-- |
+-- insertion of trees into the list of children at a given position
+--
+-- useful for inserting something into the list of children at a given position
+-- the list of children is split with the @splitAt@ function
+-- the nodes are inserted between these two sublists.
+--
+-- examples: @insertChildrenAt 0 ins t@ inserts all elements computed with @ins t@ in front
+-- of the childen of @t@, @insertChildrenAt 1 ins t@ behind the first child
+--
+-- see also: 'insertChildrenAfter'
+
+
+insertChildrenAt	:: Int -> TFilter node -> TFilter node
+insertChildrenAt i ins t
+    = replaceChildren (cl1 ++ ins t ++ cl2) t
+    where
+    (cl1, cl2) = splitAt i $ getChildren t
+
+-- |
+-- insertion of trees into the list of children after specific elements
+--
+-- useful for inserting something into the list of children of a node
+-- the list of children is split with the @span@ function and the filter p as predicate
+-- the nodes are inserted between these two sublists
+--
+-- examples: @insertChildrenAfter none ins t@ inserts all elements computed with @ins t@ in front
+-- of the childen of @t@, @insertChildrenAfter this ins t@ appends the elements to the children
+--
+-- see also: 'insertChildrenAt'
+
+insertChildrenAfter	:: TFilter node -> TFilter node -> TFilter node
+insertChildrenAfter p ins t
+    = replaceChildren (cl1 ++ ins t ++ cl2) t
+    where
+    (cl1, cl2) = span (not . null . p) $ getChildren t
+
+-- ------------------------------------------------------------
+--
+-- monadic filter
+
+-- |
+-- the monadic version of the identity filter this.
+--
+-- see also : 'this'
+
+thisM		:: Monad m => (a -> m [a])
+thisM		= liftMf this
+
+-- |
+-- the monadic version of the null filter none.
+--
+-- see also : 'none'
+
+noneM		:: Monad m => (a -> m [b])
+noneM		= liftMf none
+
+-- |
+-- sequential composition of monadic filters, monadic version of \".>\".
+--
+--    * 1.parameter f1 :  the 1. monadic filter
+--
+--    - 2.parameter f2 :  the 2. monadic filter
+--
+--    - returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)
+--
+-- see also : '(.>)'
+
+(.>>)	:: Monad m => (a -> m[b]) -> (b -> m [c]) -> (a -> m[c])
+cmd1 .>> cmd2
+    = \ t ->
+      do
+      r1 <- cmd1 t
+      r2 <- mapM cmd2 r1
+      return (concat r2)
+
+-- |
+-- generalized sequential composition of monadic filters
+
+seqM	:: Monad m => [a -> m[a]] -> (a -> m[a])
+seqM
+    = foldr (.>>) thisM
+
+-- |
+-- binary parallel composition, the logical OR for predicate filter
+--
+--    * 1.parameter f1 :  the 1. filter
+--
+--    - 2.parameter f2 :  the 2. filter
+--
+--    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results
+-- see also: 'cat', '+++', 'catM'
+
+(+++>>)		:: Monad m => (a -> m [b]) -> (a -> m [b]) -> (a -> m [b])
+f +++>> g	= \ t -> do
+			 r1 <- f t
+			 r2 <- g t
+			 return (r1 ++ r2)
+
+-- |
+-- apply a list of monadic filters
+--
+--    * 1.parameter fs :  the list of filters
+--
+--    - returns : the composing filter
+-- see also: 'cat', '+++', '+++>>'
+
+catM	:: Monad m => [a -> m [b]] -> (a -> m [b])
+catM fs  t
+    = do
+      res <- sequence (map ($ t) fs)
+      return $ concat res
+
+-- |
+-- monadic if-then-else.
+--
+--    * 1.parameter p :  the predicate
+--
+--    - 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree
+--
+--    - 3.parameter elseP :  the else part
+--
+--    - returns : the monadic filter for the conditional
+
+ifM		:: Monad m => (a -> [b]) -> (a -> m [c]) -> (a -> m [c]) -> (a -> m [c])
+ifM p thenPart elsePart
+    = \ t ->
+      if (satisfies p) t
+      then thenPart t
+      else elsePart t
+
+-- |
+-- monadic version of multiway branch. The list of cases @f :-> g@ is processed sequentially,
+-- in the first case for that f holds g is applied, if no case matches, 'noneM' is
+-- applied.
+-- This filter can be used like a case expression: @choiceM [ p1 :-> f1, p2 :-> f2, ... , thisM :-> defaultFilter]@
+--
+-- see also : 'choice', 'ifM'
+
+choiceM		:: Monad m => [IfThen (a -> [c]) (a -> m [b])] -> (a -> m [b])
+choiceM []
+    = noneM
+
+choiceM ((g :-> f) : cs)
+    = ifM g f (choiceM cs)
+
+
+-- |
+-- when the predicate p holds, the monadic filter f is applied, else the identity filter.
+--
+--    * 1.parameter f :  the conditinally applied monadic filter
+--
+--    - 2.parameter p :  the simple predicate
+--
+--    - returns : the conditional filter
+--
+-- see also : 'ifM', 'when', 'guardsM', 'whenNotM'
+
+whenM		:: Monad m => (a -> m [a]) -> (a -> [b]) -> (a -> m [a])
+f `whenM` g	= ifM g f thisM
+
+-- |
+-- the complementary filter of whenM.
+--
+-- see also : 'ifM', 'whenM', 'whenNot'
+
+whenNotM	:: Monad m => (a -> m [a]) -> (a -> [b]) -> (a -> m [a])
+f `whenNotM` g	= ifM g thisM f
+
+-- |
+-- when the predicate p holds, the monadic filter f is applied, else the null filter.
+--
+--    * 1.parameter p :  the simple predicate filter
+--
+--    - 2.parameter f :  the conditionally applied monadic filter
+--
+--    - returns : the conditional filter
+--
+-- see also : 'ifM', 'guards', 'whenM'
+
+guardsM		:: Monad m => (a -> [b]) -> (a -> m [c]) -> (a -> m [c])
+g `guardsM` f	= ifM g f noneM
+
+-- |
+-- Filter for editing the children of a tree with a monadic filter
+--
+--    * 1.parameter cf :  the monadic filter applied to the children
+--
+--    - returns : the monadic editing filter
+--
+-- see also : 'processChildren'
+
+processChildrenM	:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])
+processChildrenM ft (NTree n cs)
+    = do
+      res <- ft $$< cs
+      return [NTree n res]
+
+-- |
+-- monadic variant of 'processTopDown'
+
+processTopDownM		:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])
+processTopDownM f
+    = f .>> processChildrenM (processTopDownM f)
+
+-- |
+-- monadic variant of 'processBottomUp'
+
+processBottomUpM	:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])
+processBottomUpM f
+    = processChildrenM (processBottomUpM f) .>> f
+
+-- |
+-- infix operator for applying a monadic filter to a list of trees,
+-- typically used in do-notation for processing of intermediate results.
+--
+--    * 1.parameter f :  the monadic filter
+--
+--    - 2.parameter ts :  the list of trees
+--
+--    - returns : the concatenated list of results
+--
+-- see also : '($$)'
+
+($$<)	:: Monad m => (a -> m [b]) -> [a] -> m [b]
+cmd $$< l
+    = do
+      r <- mapM cmd l
+      return (concat r)
+
+-- |
+-- lift a filter to a monadic filter
+--
+--    * 1.parameter f :  the /simple/ filter
+--
+--    - returns : the lifted monadic version
+
+liftMf	:: Monad m => (a -> [b]) -> a -> m [b]
+liftMf f t
+    = return (f t)
+
+-- |
+-- run an arbitray command on a tree t and return the tree,
+-- used for inserting arbitray commands in a filter pipeline
+--
+--    * 1.parameter cmd :  the command
+--
+--    - 2.parameter t :  the argument tree
+--
+--    - returns : the unchanged tree as a single element list
+
+performAction	:: Monad m => (a -> m b) -> a -> m [a]
+performAction cmd t
+    = do
+      cmd t
+      return [t]
+
+-- eof ------------------------------------------------------------
diff --git a/src/Makefile b/src/Makefile
--- a/src/Makefile
+++ b/src/Makefile
@@ -40,6 +40,7 @@
 
 HXT_SRC	= \
 	$(wildcard Control/Monad/*.hs) \
+	$(wildcard Data/Tree/NTree/*.hs) \
         $(wildcard System/*.hs) \
 	$(wildcard Text/XML/HXT/*.hs) \
 	$(wildcard Text/XML/HXT/DOM/*.hs) \
@@ -53,7 +54,7 @@
 HXT_LIBA	= libHS$(HXT_PACKAGE).a
 HXT_LIBO	= HS$(HXT_PACKAGE).o
 HXT_LIB		= $(HXT_LIBA) $(HXT_LIBO)
-HXT_REQ_PKG	= -package parsec -package HTTP -package hxt
+HXT_REQ_PKG	= -package parsec -package HTTP -package hxt-8.3.0
 
 $(HXT_LIBA)	: $(HXT_SRC)
 		$(GHC) -package-name $(HXT_PACKAGE_NAME) $(HXT_REQ_PKG) --make $(HXT_DRIVER:.o=.hs)
diff --git a/src/Text/XML/HXT/DOM/NamespaceFilter.hs b/src/Text/XML/HXT/DOM/NamespaceFilter.hs
--- a/src/Text/XML/HXT/DOM/NamespaceFilter.hs
+++ b/src/Text/XML/HXT/DOM/NamespaceFilter.hs
@@ -16,14 +16,11 @@
 
 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 )
 
@@ -48,7 +45,7 @@
 -- The filter may be applied repeatedly if neccessary.
 
 propagateNamespaces	:: XmlFilter
-propagateNamespaces	= propagateNamespaceEnv [ (a_xml, xmlNamespace), (a_xmlns, xmlnsNamespace) ]
+propagateNamespaces	= propagateNamespaceEnv $ toNsEnv [ (a_xml, xmlNamespace), (a_xmlns, xmlnsNamespace) ]
 
 -- |
 -- attaches the namespace info given by the namespace table
@@ -88,7 +85,7 @@
 			    .
 			    getChildren
 			   ) nsAttrs)
-    newEnv	= addEntries nsDecl env
+    newEnv	= addEntries (toNsEnv nsDecl) env
 
     attachNamespaceUrisToAttr	:: NamespaceTable -> XmlFilter
     attachNamespaceUrisToAttr attrEnv
diff --git a/src/Text/XML/HXT/DOM/XmlTreeTypes.hs b/src/Text/XML/HXT/DOM/XmlTreeTypes.hs
new file mode 100644
--- /dev/null
+++ b/src/Text/XML/HXT/DOM/XmlTreeTypes.hs
@@ -0,0 +1,77 @@
+-- |
+-- exports the core data types
+-- and some additional types and functions
+-- for compatibility with none arrow modules
+--
+-- Version : $Id: XmlTreeTypes.hs,v 1.6 2006/05/09 15:30:43 hxml Exp $
+
+module Text.XML.HXT.DOM.XmlTreeTypes
+    ( module Data.Tree.NTree.Filter
+    , module Text.XML.HXT.DOM.TypeDefs
+    , module Text.XML.HXT.DOM.XmlTreeTypes
+    )
+
+where
+
+import Data.Tree.NTree.Filter
+import Text.XML.HXT.DOM.TypeDefs
+
+-- aliases for compatiblility reasons
+
+mkNode		:: node -> NTrees node -> NTree node
+mkNode		= mkTree
+
+formatNTree	:: (node -> String) -> NTree node -> String
+formatNTree	= formatTree
+
+foldNTree	:: (a -> [b] -> b) -> NTree a -> b
+foldNTree 	= foldTree
+
+mapNTree	:: (a -> b) -> NTree a -> NTree b
+mapNTree 	= fmap
+
+nTreeToList	:: NTree a -> [a]
+nTreeToList	= nodesTree
+
+depthNTree	:: NTree a -> Int
+depthNTree	= depthTree
+
+cardNTree	:: NTree a -> Int
+cardNTree	= cardNTree
+
+-- -----------------------------------------------------------------------------
+--
+-- Basic types for filters
+
+-- | A functions that takes a node and returns a list of nodes
+
+type XmlFilter	= TFilter  XNode
+
+-- | A function that takes a list of nodes and returns a list of nodes
+
+type XmlSFilter	= TSFilter XNode
+
+
+-- -----------------------------------------------------------------------------
+--
+
+-- | Tag name
+type TagName	= QName
+
+-- | Attribute name
+type AttrName	= QName
+
+-- -----------------------------------------------------------------------------
+
+-- | shortcut for 'qualifiedName'
+
+tName	:: QName -> String
+tName	= qualifiedName
+
+-- | shortcut for 'qualifiedName'
+
+aName	:: QName -> String
+aName	= qualifiedName
+
+-- -----------------------------------------------------------------------------
+
diff --git a/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs b/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs
--- a/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs
+++ b/src/Text/XML/HXT/Parser/ProtocolHandlerHttpNative.hs
@@ -43,6 +43,8 @@
 --
 -- the native http protocol handler
 
+type ResponseString	= Response String
+
 -- ------------------------------------------------------------
 --
 -- the http protocol handler, haskell implementation
@@ -82,7 +84,7 @@
     where
     readErr msg	= addFatal msg n
 
-    getHttp		:: Int -> URI -> String -> IO Response
+    getHttp		:: Int -> URI -> String -> IO ResponseString
     getHttp trc' uri' proxy'
 	= withSocketsDo $
 	  browse ( do
@@ -109,7 +111,7 @@
     convertResponseStatus (a, b, c)
 	= 100 * a + 10 * b + c
 
-    convertResponseHeaders	:: Response -> XmlTrees
+    convertResponseHeaders	:: ResponseString -> XmlTrees
     convertResponseHeaders r'
 	= cvResponseCode (rspCode r')
 	  ++
diff --git a/src/hxt-filter-package.hs b/src/hxt-filter-package.hs
--- a/src/hxt-filter-package.hs
+++ b/src/hxt-filter-package.hs
@@ -26,7 +26,7 @@
 	" This package is a compatibitlity package for old software working with the filter approach like in HaXml." ++
 	" For new projects it's recomended to use the arrow based library (hxt)."
       , "homepage: http://www.fh-wedel.de/~si/HXmlToolbox/index.html"
-      , "copyright: Copyright (c) 2005-8 Uwe Schmidt"
+      , "copyright: Copyright (c) 2005-2009 Uwe Schmidt"
       ]
 
 part3a	:: [String]
@@ -61,7 +61,7 @@
       , "         containers-0.2.0.0,"
       , "         directory-1.0.0.2,"
       , "         process-1.0.1.0,"
-      , "         hxt-8.2.0"
+      , "         hxt-8.3.0"
       ]
 
 part4b :: [String]
@@ -78,9 +78,9 @@
       , "                parsec     >= 2.1 && < 3,"
       , "                HUnit      >= 1.2,"
       , "                network    >= 2.1,"
-      , "                HTTP       >= 3001.1,"
+      , "                HTTP       >= 4000.0.4 && < 5000,"
       , "                process    >= 1.0.1,"
-      , "                hxt        >= 8.2"
+      , "                hxt        >= 8.3"
       ]
 
 main	:: IO()
