packages feed

HaXml 1.19.1 → 1.19.2

raw patch · 11 files changed

+538/−501 lines, 11 filesdep +bytestringdep +containersdep +prettydep ~basedep ~polyparse

Dependencies added: bytestring, containers, pretty, random

Dependency ranges changed: base, polyparse

Files

HaXml.cabal view
@@ -1,88 +1,103 @@ name:		HaXml-version:	1.19.1-ghc-options:	-DVERSION="1.19.1"-cc-options:	-DVERSION="1.19.1"-nhc98-options:	-K10M+version:	1.19.2 license:	LGPL license-file:	COPYRIGHT author:		Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk>+maintainer:	author homepage:	http://www.cs.york.ac.uk/fp/HaXml/ category:	Text, XML synopsis:	Utilities for manipulating XML documents description: 	Haskell utilities for parsing, filtering, transforming and 	generating XML documents.-exposed-modules:-	Text.XML.HaXml,-	Text.XML.HaXml.ByteStringPP,-	Text.XML.HaXml.Combinators,-	Text.XML.HaXml.DtdToHaskell.Convert,-	Text.XML.HaXml.DtdToHaskell.Instance,-	Text.XML.HaXml.DtdToHaskell.TypeDef,-	Text.XML.HaXml.Escape,-	Text.XML.HaXml.Html.Generate,-	Text.XML.HaXml.Html.Parse,-	Text.XML.HaXml.Html.ParseLazy,-	Text.XML.HaXml.Html.Pretty,-	Text.XML.HaXml.Lex,-	Text.XML.HaXml.OneOfN,-	Text.XML.HaXml.Parse,-	Text.XML.HaXml.ParseLazy,-	Text.XML.HaXml.Posn,-	Text.XML.HaXml.Pretty,-	Text.XML.HaXml.SAX,-	Text.XML.HaXml.ShowXmlLazy,-	Text.XML.HaXml.Types,-	Text.XML.HaXml.TypeMapping,-	Text.XML.HaXml.Validate,-	Text.XML.HaXml.Verbatim,-	Text.XML.HaXml.Wrappers,-	Text.XML.HaXml.XmlContent,-	Text.XML.HaXml.Xtract.Combinators,-	Text.XML.HaXml.Xtract.Lex,-	Text.XML.HaXml.Xtract.Parse-hs-source-dir:	src-build-depends:	base, haskell98, polyparse >= 1.1-extensions:	CPP+build-type:     Simple+cabal-version:  >=1.2 -Executable: Canonicalise-GHC-Options: -Wall -O2-Extensions:  CPP-Hs-Source-Dirs: src/tools, src-Main-Is: Canonicalise.hs+flag splitBase+flag bytestringInBase -Executable: CanonicaliseLazy-GHC-Options: -Wall -O2-Extensions:  CPP-Hs-Source-Dirs: src/tools, src-Main-Is: CanonicaliseLazy.hs+library+  exposed-modules:+        Text.XML.HaXml,+        Text.XML.HaXml.ByteStringPP,+        Text.XML.HaXml.Combinators,+        Text.XML.HaXml.DtdToHaskell.Convert,+        Text.XML.HaXml.DtdToHaskell.Instance,+        Text.XML.HaXml.DtdToHaskell.TypeDef,+        Text.XML.HaXml.Escape,+        Text.XML.HaXml.Html.Generate,+        Text.XML.HaXml.Html.Parse,+        Text.XML.HaXml.Html.ParseLazy,+        Text.XML.HaXml.Html.Pretty,+        Text.XML.HaXml.Lex,+        Text.XML.HaXml.OneOfN,+        Text.XML.HaXml.Parse,+        Text.XML.HaXml.ParseLazy,+        Text.XML.HaXml.Posn,+        Text.XML.HaXml.Pretty,+        Text.XML.HaXml.SAX,+        Text.XML.HaXml.ShowXmlLazy,+        Text.XML.HaXml.Types,+        Text.XML.HaXml.TypeMapping,+        Text.XML.HaXml.Validate,+        Text.XML.HaXml.Verbatim,+        Text.XML.HaXml.Wrappers,+        Text.XML.HaXml.XmlContent,+        Text.XML.HaXml.Xtract.Combinators,+        Text.XML.HaXml.Xtract.Lex,+        Text.XML.HaXml.Xtract.Parse+  hs-source-dir: src+  build-depends: base, haskell98, polyparse+  if flag(splitBase)+    build-depends: base >= 3, pretty, random, containers+  else+    build-depends: base < 3+  if flag(bytestringInBase)+    build-depends: base >= 2 && < 3+  else+    build-depends: base < 2 || >= 3, bytestring+  extensions: CPP+  cpp-options: -DVERSION=1.19.2+  nhc98-options: -K10M -Executable: Xtract-GHC-Options: -Wall -O2-Extensions:  CPP-Hs-Source-Dirs: src/tools, src-Main-Is: Xtract.hs+Executable Canonicalise+  GHC-Options: -Wall+  Extensions:  CPP+  Hs-Source-Dirs: src/tools, src+  Main-Is: Canonicalise.hs -Executable: XtractLazy-GHC-Options: -Wall -O2-Extensions:  CPP-Hs-Source-Dirs: src/tools, src-Main-Is: XtractLazy.hs+Executable CanonicaliseLazy+  GHC-Options: -Wall+  Extensions:  CPP+  Hs-Source-Dirs: src/tools, src+  Main-Is: CanonicaliseLazy.hs -Executable: Validate-GHC-Options: -Wall -O2-Extensions:  CPP-Hs-Source-Dirs: src/tools, src-Main-Is: Validate.hs+Executable Xtract+  GHC-Options: -Wall+  Extensions:  CPP+  Hs-Source-Dirs: src/tools, src+  Main-Is: Xtract.hs -Executable: MkOneOf-GHC-Options: -Wall -O2-Extensions:  CPP-Hs-Source-Dirs: src/tools, src-Main-Is: MkOneOf.hs+Executable XtractLazy+  GHC-Options: -Wall+  Extensions:  CPP+  Hs-Source-Dirs: src/tools, src+  Main-Is: XtractLazy.hs -Executable: DtdToHaskell-GHC-Options: -Wall -O2-Extensions:  CPP-Hs-Source-Dirs: src/tools, src-Main-Is: DtdToHaskell.hs+Executable Validate+  GHC-Options: -Wall+  Extensions:  CPP+  Hs-Source-Dirs: src/tools, src+  Main-Is: Validate.hs++Executable MkOneOf+  GHC-Options: -Wall+  Extensions:  CPP+  Hs-Source-Dirs: src/tools, src+  Main-Is: MkOneOf.hs++Executable DtdToHaskell+  GHC-Options: -Wall+  Extensions:  CPP+  Hs-Source-Dirs: src/tools, src+  Main-Is: DtdToHaskell.hs
Makefile view
@@ -1,5 +1,5 @@ SOFTWARE = HaXml-VERSION  = 1.19.1+VERSION  = 1.19.2  #CPP      = cpp -traditional CPP     = cpphs --text --noline	# useful e.g. on MacOS X
docs/HaXml/src/Text/XML/HaXml.html view
@@ -34,7 +34,7 @@ <a name="(line32)"></a> <a name="(line33)"></a><a name="version"></a><font color=Blue>-- | The version of the library.</font> <a name="(line34)"></a>version <font color=Red>::</font> String-<a name="(line35)"></a>version  <font color=Red>=</font> show VERSION+<a name="(line35)"></a>version  <font color=Red>=</font> <font color=Magenta>"VERSION"</font> <a name="(line36)"></a>		<font color=Blue>-- expect cpp to fill in value</font> </pre> </html>
docs/HaXml/src/Text/XML/HaXml/ByteStringPP.html view
@@ -22,280 +22,281 @@ <a name="(line20)"></a>  <font color=Cyan>,</font>   cp <a name="(line21)"></a>  <font color=Cyan>)</font> <font color=Green><u>where</u></font> <a name="(line22)"></a>-<a name="(line23)"></a><font color=Green><u>import</u></font> Prelude hiding <font color=Cyan>(</font>maybe<font color=Cyan>,</font>either<font color=Cyan>,</font>elem<font color=Cyan>)</font>+<a name="(line23)"></a><font color=Green><u>import</u></font> Prelude hiding <font color=Cyan>(</font>maybe<font color=Cyan>,</font>either<font color=Cyan>,</font>elem<font color=Cyan>,</font>concat<font color=Cyan>)</font> <a name="(line24)"></a><font color=Green><u>import</u></font> Maybe hiding <font color=Cyan>(</font>maybe<font color=Cyan>)</font> <a name="(line25)"></a><font color=Green><u>import</u></font> Data<font color=Cyan>.</font>List <font color=Cyan>(</font>intersperse<font color=Cyan>)</font> -<a name="(line26)"></a><font color=Green><u>import</u></font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Lazy hiding <font color=Cyan>(</font>pack<font color=Cyan>,</font>map<font color=Cyan>,</font>head<font color=Cyan>,</font>any<font color=Cyan>,</font>singleton<font color=Cyan>)</font>-<a name="(line27)"></a><font color=Green><u>import</u></font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Lazy<font color=Cyan>.</font>Char8 <font color=Cyan>(</font>pack<font color=Cyan>,</font> singleton<font color=Cyan>,</font> join<font color=Cyan>)</font>-<a name="(line28)"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Types-<a name="(line29)"></a>-<a name="(line30)"></a><a name="either"></a>either f g <font color=Cyan>(</font>Left x<font color=Cyan>)</font>  <font color=Red>=</font> f x-<a name="(line31)"></a>either f g <font color=Cyan>(</font>Right x<font color=Cyan>)</font> <font color=Red>=</font> g x-<a name="(line32)"></a>-<a name="(line33)"></a><a name="maybe"></a>maybe f Nothing  <font color=Red>=</font> empty-<a name="(line34)"></a>maybe f <font color=Cyan>(</font>Just x<font color=Cyan>)</font> <font color=Red>=</font> f x-<a name="(line35)"></a>+<a name="(line26)"></a><font color=Blue>--import Data.ByteString.Lazy hiding (pack,map,head,any,singleton,intersperse,join)</font>+<a name="(line27)"></a><font color=Green><u>import</u></font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Lazy<font color=Cyan>.</font>Char8 <font color=Cyan>(</font>ByteString()<font color=Cyan>,</font> concat<font color=Cyan>,</font> pack<font color=Cyan>,</font> singleton<font color=Cyan>,</font> join+<a name="(line28)"></a>                                  <font color=Cyan>,</font> append<font color=Cyan>,</font> elem<font color=Cyan>,</font> empty<font color=Cyan>)</font>+<a name="(line29)"></a><font color=Green><u>import</u></font> Text<font color=Cyan>.</font>XML<font color=Cyan>.</font>HaXml<font color=Cyan>.</font>Types+<a name="(line30)"></a>+<a name="(line31)"></a><a name="either"></a>either f g <font color=Cyan>(</font>Left x<font color=Cyan>)</font>  <font color=Red>=</font> f x+<a name="(line32)"></a>either f g <font color=Cyan>(</font>Right x<font color=Cyan>)</font> <font color=Red>=</font> g x+<a name="(line33)"></a>+<a name="(line34)"></a><a name="maybe"></a>maybe f Nothing  <font color=Red>=</font> empty+<a name="(line35)"></a>maybe f <font color=Cyan>(</font>Just x<font color=Cyan>)</font> <font color=Red>=</font> f x <a name="(line36)"></a>-<a name="(line37)"></a><font color=Blue>-- A simple implementation of the pretty-printing combinator interface,</font>-<a name="(line38)"></a><font color=Blue>-- but for plain ByteStrings:</font>-<a name="(line39)"></a><font color=Green><u>infixl</u></font> <font color=Magenta>6</font> <font color=Cyan>&lt;&gt;</font> -<a name="(line40)"></a><font color=Green><u>infixl</u></font> <font color=Magenta>6</font> <font color=Cyan>&lt;+&gt;</font>-<a name="(line41)"></a><font color=Green><u>infixl</u></font> <font color=Magenta>5</font> <font color=Cyan>$$</font><font color=Cyan>,</font> <font color=Cyan>$+$</font>-<a name="(line42)"></a><a name="<>"></a><font color=Cyan>(</font><font color=Cyan>&lt;&gt;</font><font color=Cyan>)</font>   <font color=Red>::</font> ByteString   <font color=Red>-&gt;</font> ByteString <font color=Red>-&gt;</font> ByteString <font color=Blue>-- Beside</font>-<a name="(line43)"></a><a name="hcat"></a>hcat   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString		   <font color=Blue>-- List version of &lt;&gt;</font>-<a name="(line44)"></a><a name="<+>"></a><font color=Cyan>(</font><font color=Cyan>&lt;+&gt;</font><font color=Cyan>)</font>  <font color=Red>::</font> ByteString   <font color=Red>-&gt;</font> ByteString <font color=Red>-&gt;</font> ByteString <font color=Blue>-- Beside, separated by space</font>-<a name="(line45)"></a><a name="hsep"></a>hsep   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString		   <font color=Blue>-- List version of &lt;+&gt;</font>-<a name="(line46)"></a><a name="$$"></a><font color=Cyan>(</font><font color=Cyan>$$</font><font color=Cyan>)</font>   <font color=Red>::</font> ByteString   <font color=Red>-&gt;</font> ByteString <font color=Red>-&gt;</font> ByteString <font color=Blue>-- Above; if there is no</font>-<a name="(line47)"></a>                                                   <font color=Blue>-- overlap, it "dovetails"</font>-<a name="(line48)"></a><a name="vcat"></a>vcat   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- List version of $$</font>-<a name="(line49)"></a><a name="cat"></a>cat    <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- Either hcat or vcat</font>-<a name="(line50)"></a><a name="sep"></a>sep    <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- Either hsep or vcat</font>-<a name="(line51)"></a><a name="fcat"></a>fcat   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- ``Paragraph fill'' version of cat</font>-<a name="(line52)"></a><a name="fsep"></a>fsep   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- ``Paragraph fill'' version of sep</font>-<a name="(line53)"></a><a name="nest"></a>nest   <font color=Red>::</font> Int <font color=Red>-&gt;</font> ByteString <font color=Red>-&gt;</font> ByteString  <font color=Blue>-- Nested</font>-<a name="(line54)"></a>-<a name="(line55)"></a><font color=Cyan>(</font><font color=Cyan>&lt;&gt;</font><font color=Cyan>)</font>  b1 b2  <font color=Red>=</font> b1 <font color=Cyan>`append`</font> b2-<a name="(line56)"></a><font color=Cyan>(</font><font color=Cyan>&lt;+&gt;</font><font color=Cyan>)</font> b1 b2  <font color=Red>=</font> b1 <font color=Cyan>&lt;&gt;</font> pack <font color=Magenta>" "</font> <font color=Cyan>&lt;&gt;</font> b2-<a name="(line57)"></a><font color=Cyan>(</font><font color=Cyan>$$</font><font color=Cyan>)</font>  b1 b2  <font color=Red>=</font> b1 <font color=Cyan>&lt;&gt;</font> pack <font color=Magenta>"\n"</font> <font color=Cyan>&lt;&gt;</font> b2-<a name="(line58)"></a><a name="$+$"></a><font color=Cyan>(</font><font color=Cyan>$+$</font><font color=Cyan>)</font>        <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>$$</font><font color=Cyan>)</font>-<a name="(line59)"></a>-<a name="(line60)"></a>hcat <font color=Red>=</font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Lazy<font color=Cyan>.</font>concat -<a name="(line61)"></a>hsep <font color=Red>=</font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Lazy<font color=Cyan>.</font>Char8<font color=Cyan>.</font>join <font color=Cyan>(</font>singleton <font color=Magenta>' '</font><font color=Cyan>)</font>-<a name="(line62)"></a>vcat <font color=Red>=</font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Lazy<font color=Cyan>.</font>Char8<font color=Cyan>.</font>join <font color=Cyan>(</font>singleton <font color=Magenta>'\n'</font><font color=Cyan>)</font>-<a name="(line63)"></a>cat  <font color=Red>=</font> hcat-<a name="(line64)"></a>sep  <font color=Red>=</font> hsep-<a name="(line65)"></a><a name="text"></a>text <font color=Red>=</font> pack-<a name="(line66)"></a>fcat <font color=Red>=</font> cat-<a name="(line67)"></a>fsep <font color=Red>=</font> sep-<a name="(line68)"></a>nest <font color=Green><u>_</u></font> b <font color=Red>=</font> pack <font color=Magenta>" "</font> <font color=Cyan>&lt;&gt;</font> b-<a name="(line69)"></a><a name="parens"></a>parens p <font color=Red>=</font> pack <font color=Magenta>"("</font> <font color=Cyan>&lt;&gt;</font> p <font color=Cyan>&lt;&gt;</font> pack <font color=Magenta>")"</font>-<a name="(line70)"></a>+<a name="(line37)"></a>+<a name="(line38)"></a><font color=Blue>-- A simple implementation of the pretty-printing combinator interface,</font>+<a name="(line39)"></a><font color=Blue>-- but for plain ByteStrings:</font>+<a name="(line40)"></a><font color=Green><u>infixl</u></font> <font color=Magenta>6</font> <font color=Cyan>&lt;&gt;</font> +<a name="(line41)"></a><font color=Green><u>infixl</u></font> <font color=Magenta>6</font> <font color=Cyan>&lt;+&gt;</font>+<a name="(line42)"></a><font color=Green><u>infixl</u></font> <font color=Magenta>5</font> <font color=Cyan>$$</font><font color=Cyan>,</font> <font color=Cyan>$+$</font>+<a name="(line43)"></a><a name="<>"></a><font color=Cyan>(</font><font color=Cyan>&lt;&gt;</font><font color=Cyan>)</font>   <font color=Red>::</font> ByteString   <font color=Red>-&gt;</font> ByteString <font color=Red>-&gt;</font> ByteString <font color=Blue>-- Beside</font>+<a name="(line44)"></a><a name="hcat"></a>hcat   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString		   <font color=Blue>-- List version of &lt;&gt;</font>+<a name="(line45)"></a><a name="<+>"></a><font color=Cyan>(</font><font color=Cyan>&lt;+&gt;</font><font color=Cyan>)</font>  <font color=Red>::</font> ByteString   <font color=Red>-&gt;</font> ByteString <font color=Red>-&gt;</font> ByteString <font color=Blue>-- Beside, separated by space</font>+<a name="(line46)"></a><a name="hsep"></a>hsep   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString		   <font color=Blue>-- List version of &lt;+&gt;</font>+<a name="(line47)"></a><a name="$$"></a><font color=Cyan>(</font><font color=Cyan>$$</font><font color=Cyan>)</font>   <font color=Red>::</font> ByteString   <font color=Red>-&gt;</font> ByteString <font color=Red>-&gt;</font> ByteString <font color=Blue>-- Above; if there is no</font>+<a name="(line48)"></a>                                                   <font color=Blue>-- overlap, it "dovetails"</font>+<a name="(line49)"></a><a name="vcat"></a>vcat   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- List version of $$</font>+<a name="(line50)"></a><a name="cat"></a>cat    <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- Either hcat or vcat</font>+<a name="(line51)"></a><a name="sep"></a>sep    <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- Either hsep or vcat</font>+<a name="(line52)"></a><a name="fcat"></a>fcat   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- ``Paragraph fill'' version of cat</font>+<a name="(line53)"></a><a name="fsep"></a>fsep   <font color=Red>::</font> <font color=Red>[</font>ByteString<font color=Red>]</font> <font color=Red>-&gt;</font> ByteString       <font color=Blue>-- ``Paragraph fill'' version of sep</font>+<a name="(line54)"></a><a name="nest"></a>nest   <font color=Red>::</font> Int <font color=Red>-&gt;</font> ByteString <font color=Red>-&gt;</font> ByteString  <font color=Blue>-- Nested</font>+<a name="(line55)"></a>+<a name="(line56)"></a><font color=Cyan>(</font><font color=Cyan>&lt;&gt;</font><font color=Cyan>)</font>  b1 b2  <font color=Red>=</font> b1 <font color=Cyan>`append`</font> b2+<a name="(line57)"></a><font color=Cyan>(</font><font color=Cyan>&lt;+&gt;</font><font color=Cyan>)</font> b1 b2  <font color=Red>=</font> b1 <font color=Cyan>&lt;&gt;</font> pack <font color=Magenta>" "</font> <font color=Cyan>&lt;&gt;</font> b2+<a name="(line58)"></a><font color=Cyan>(</font><font color=Cyan>$$</font><font color=Cyan>)</font>  b1 b2  <font color=Red>=</font> b1 <font color=Cyan>&lt;&gt;</font> pack <font color=Magenta>"\n"</font> <font color=Cyan>&lt;&gt;</font> b2+<a name="(line59)"></a><a name="$+$"></a><font color=Cyan>(</font><font color=Cyan>$+$</font><font color=Cyan>)</font>        <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>$$</font><font color=Cyan>)</font>+<a name="(line60)"></a>+<a name="(line61)"></a>hcat <font color=Red>=</font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Lazy<font color=Cyan>.</font>Char8<font color=Cyan>.</font>concat +<a name="(line62)"></a>hsep <font color=Red>=</font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Lazy<font color=Cyan>.</font>Char8<font color=Cyan>.</font>join <font color=Cyan>(</font>singleton <font color=Magenta>' '</font><font color=Cyan>)</font>+<a name="(line63)"></a>vcat <font color=Red>=</font> Data<font color=Cyan>.</font>ByteString<font color=Cyan>.</font>Lazy<font color=Cyan>.</font>Char8<font color=Cyan>.</font>join <font color=Cyan>(</font>singleton <font color=Magenta>'\n'</font><font color=Cyan>)</font>+<a name="(line64)"></a>cat  <font color=Red>=</font> hcat+<a name="(line65)"></a>sep  <font color=Red>=</font> hsep+<a name="(line66)"></a><a name="text"></a>text <font color=Red>=</font> pack+<a name="(line67)"></a>fcat <font color=Red>=</font> cat+<a name="(line68)"></a>fsep <font color=Red>=</font> sep+<a name="(line69)"></a>nest <font color=Green><u>_</u></font> b <font color=Red>=</font> pack <font color=Magenta>" "</font> <font color=Cyan>&lt;&gt;</font> b+<a name="(line70)"></a><a name="parens"></a>parens p <font color=Red>=</font> pack <font color=Magenta>"("</font> <font color=Cyan>&lt;&gt;</font> p <font color=Cyan>&lt;&gt;</font> pack <font color=Magenta>")"</font> <a name="(line71)"></a>-<a name="(line72)"></a><font color=Blue>----</font>-<a name="(line73)"></a><font color=Blue>-- Now for the XML pretty-printing interface.</font>-<a name="(line74)"></a><font color=Blue>-- (Basically copied direct from Text.XML.HaXml.Pretty).</font>-<a name="(line75)"></a>-<a name="(line76)"></a><a name="document"></a>document <font color=Red>::</font> Document i <font color=Red>-&gt;</font> ByteString-<a name="(line77)"></a><a name="prolog"></a>prolog   <font color=Red>::</font> Prolog     <font color=Red>-&gt;</font> ByteString-<a name="(line78)"></a><a name="xmldecl"></a>xmldecl  <font color=Red>::</font> XMLDecl    <font color=Red>-&gt;</font> ByteString-<a name="(line79)"></a><a name="misc"></a>misc     <font color=Red>::</font> Misc       <font color=Red>-&gt;</font> ByteString-<a name="(line80)"></a><a name="sddecl"></a>sddecl   <font color=Red>::</font> Bool       <font color=Red>-&gt;</font> ByteString-<a name="(line81)"></a>-<a name="(line82)"></a><a name="doctypedecl"></a>doctypedecl   <font color=Red>::</font> DocTypeDecl   <font color=Red>-&gt;</font> ByteString-<a name="(line83)"></a><a name="markupdecl"></a>markupdecl    <font color=Red>::</font> MarkupDecl    <font color=Red>-&gt;</font> ByteString-<a name="(line84)"></a><a name="extsubset"></a>extsubset     <font color=Red>::</font> ExtSubset     <font color=Red>-&gt;</font> ByteString-<a name="(line85)"></a><a name="extsubsetdecl"></a>extsubsetdecl <font color=Red>::</font> ExtSubsetDecl <font color=Red>-&gt;</font> ByteString-<a name="(line86)"></a><a name="cp"></a>cp            <font color=Red>::</font> CP            <font color=Red>-&gt;</font> ByteString-<a name="(line87)"></a>-<a name="(line88)"></a><a name="element"></a>element   <font color=Red>::</font> Element i <font color=Red>-&gt;</font> ByteString-<a name="(line89)"></a><a name="attribute"></a>attribute <font color=Red>::</font> Attribute <font color=Red>-&gt;</font> ByteString-<a name="(line90)"></a><a name="content"></a>content   <font color=Red>::</font> Content i <font color=Red>-&gt;</font> ByteString-<a name="(line91)"></a>-<a name="(line92)"></a><font color=Blue>----</font>-<a name="(line93)"></a>-<a name="(line94)"></a>document <font color=Cyan>(</font>Document p <font color=Green><u>_</u></font> e m<font color=Cyan>)</font><font color=Red>=</font> prolog p <font color=Cyan>$$</font> element e <font color=Cyan>$$</font> vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map misc m<font color=Cyan>)</font>-<a name="(line95)"></a>prolog <font color=Cyan>(</font>Prolog x m1 dtd m2<font color=Cyan>)</font><font color=Red>=</font> maybe xmldecl x <font color=Cyan>$$</font>-<a name="(line96)"></a>                             vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map misc m1<font color=Cyan>)</font> <font color=Cyan>$$</font>-<a name="(line97)"></a>                             maybe doctypedecl dtd <font color=Cyan>$$</font>-<a name="(line98)"></a>                             vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map misc m2<font color=Cyan>)</font>-<a name="(line99)"></a>xmldecl <font color=Cyan>(</font>XMLDecl v e sd<font color=Cyan>)</font>   <font color=Red>=</font> text <font color=Magenta>"&lt;?xml version='"</font> <font color=Cyan>&lt;&gt;</font> text v <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font> <font color=Cyan>&lt;+&gt;</font>-<a name="(line100)"></a>                             maybe encodingdecl e <font color=Cyan>&lt;+&gt;</font>-<a name="(line101)"></a>                             maybe sddecl sd <font color=Cyan>&lt;+&gt;</font>-<a name="(line102)"></a>                             text <font color=Magenta>"?&gt;"</font>-<a name="(line103)"></a>misc <font color=Cyan>(</font>Comment s<font color=Cyan>)</font>           <font color=Red>=</font> text <font color=Magenta>"&lt;!--"</font> <font color=Cyan>&lt;+&gt;</font> text s <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>"--&gt;"</font>-<a name="(line104)"></a>misc <font color=Cyan>(</font>PI <font color=Cyan>(</font>n<font color=Cyan>,</font>s<font color=Cyan>)</font><font color=Cyan>)</font>            <font color=Red>=</font> text <font color=Magenta>"&lt;?"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> text s <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>"?&gt;"</font>-<a name="(line105)"></a>sddecl sd   <font color=Red>|</font> sd           <font color=Red>=</font> text <font color=Magenta>"standalone='yes'"</font>-<a name="(line106)"></a>            <font color=Red>|</font> otherwise    <font color=Red>=</font> text <font color=Magenta>"standalone='no'"</font>-<a name="(line107)"></a>doctypedecl <font color=Cyan>(</font>DTD n eid ds<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>if</u></font> Prelude<font color=Cyan>.</font>null ds <font color=Green><u>then</u></font> -<a name="(line108)"></a>                                  hd <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&gt;"</font>-<a name="(line109)"></a>                             <font color=Green><u>else</u></font> hd <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>" ["</font> <font color=Cyan>$$</font>-<a name="(line110)"></a>                                  vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map markupdecl ds<font color=Cyan>)</font> <font color=Cyan>$$</font> text <font color=Magenta>"]&gt;"</font>-<a name="(line111)"></a>                           <font color=Green><u>where</u></font> hd <font color=Red>=</font> text <font color=Magenta>"&lt;!DOCTYPE"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>-<a name="(line112)"></a>                                      maybe externalid eid-<a name="(line113)"></a>markupdecl <font color=Cyan>(</font>Element e<font color=Cyan>)</font>     <font color=Red>=</font> elementdecl e-<a name="(line114)"></a>markupdecl <font color=Cyan>(</font>AttList a<font color=Cyan>)</font>     <font color=Red>=</font> attlistdecl a-<a name="(line115)"></a>markupdecl <font color=Cyan>(</font>Entity e<font color=Cyan>)</font>      <font color=Red>=</font> entitydecl e-<a name="(line116)"></a>markupdecl <font color=Cyan>(</font>Notation n<font color=Cyan>)</font>    <font color=Red>=</font> notationdecl n-<a name="(line117)"></a>markupdecl <font color=Cyan>(</font>MarkupMisc m<font color=Cyan>)</font>  <font color=Red>=</font> misc m-<a name="(line118)"></a><font color=Blue>--markupdecl (MarkupPE p m)  = peref p</font>-<a name="(line119)"></a>extsubset <font color=Cyan>(</font>ExtSubset t ds<font color=Cyan>)</font> <font color=Red>=</font> maybe textdecl t <font color=Cyan>$$</font>-<a name="(line120)"></a>                             vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map extsubsetdecl ds<font color=Cyan>)</font>-<a name="(line121)"></a>extsubsetdecl <font color=Cyan>(</font>ExtMarkupDecl m<font color=Cyan>)</font>      <font color=Red>=</font> markupdecl m-<a name="(line122)"></a>extsubsetdecl <font color=Cyan>(</font>ExtConditionalSect c<font color=Cyan>)</font> <font color=Red>=</font> conditionalsect c-<a name="(line123)"></a><font color=Blue>--extsubsetdecl (ExtPEReference p e)   = peref p</font>-<a name="(line124)"></a>-<a name="(line125)"></a>element <font color=Cyan>(</font>Elem n <font color=Green><u>as</u></font> []<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>-<a name="(line126)"></a>                         fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attribute <font color=Green><u>as</u></font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"/&gt;"</font>-<a name="(line127)"></a>element e<font color=Red>@</font><font color=Cyan>(</font>Elem n <font color=Green><u>as</u></font> cs<font color=Cyan>)</font>-<a name="(line128)"></a><font color=Blue>--  | any isText cs    = text "&lt;" &lt;&gt; text n &lt;+&gt; fsep (map attribute as) &lt;&gt;</font>-<a name="(line129)"></a><font color=Blue>--                       text "&gt;" &lt;&gt; hcat (map content cs) &lt;&gt;</font>-<a name="(line130)"></a><font color=Blue>--                       text "&lt;/" &lt;&gt; text n &lt;&gt; text "&gt;"</font>-<a name="(line131)"></a>    <font color=Red>|</font> isText <font color=Cyan>(</font>head cs<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attribute <font color=Green><u>as</u></font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>-<a name="(line132)"></a>                         text <font color=Magenta>"&gt;"</font> <font color=Cyan>&lt;&gt;</font> hcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map content cs<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>-<a name="(line133)"></a>                         text <font color=Magenta>"&lt;/"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&gt;"</font>-<a name="(line134)"></a>    <font color=Red>|</font> otherwise        <font color=Red>=</font> <font color=Green><u>let</u></font> <font color=Cyan>(</font>d<font color=Cyan>,</font>c<font color=Cyan>)</font> <font color=Red>=</font> carryelem e empty-<a name="(line135)"></a>                         <font color=Green><u>in</u></font> d <font color=Cyan>&lt;&gt;</font> c-<a name="(line136)"></a>-<a name="(line137)"></a><a name="isText"></a>isText <font color=Cyan>(</font>CString <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> True-<a name="(line138)"></a>isText <font color=Cyan>(</font>CRef <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font>      <font color=Red>=</font> True-<a name="(line139)"></a>isText <font color=Green><u>_</u></font>               <font color=Red>=</font> False-<a name="(line140)"></a>-<a name="(line141)"></a><a name="carryelem"></a>carryelem <font color=Cyan>(</font>Elem n <font color=Green><u>as</u></font> []<font color=Cyan>)</font> c-<a name="(line142)"></a>                       <font color=Red>=</font> <font color=Cyan>(</font> c <font color=Cyan>&lt;&gt;</font>-<a name="(line143)"></a>                           text <font color=Magenta>"&lt;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attribute <font color=Green><u>as</u></font><font color=Cyan>)</font>-<a name="(line144)"></a>                         <font color=Cyan>,</font> text <font color=Magenta>"/&gt;"</font><font color=Cyan>)</font>-<a name="(line145)"></a>carryelem e<font color=Red>@</font><font color=Cyan>(</font>Elem n <font color=Green><u>as</u></font> cs<font color=Cyan>)</font> c-<a name="(line146)"></a><font color=Blue>--  | any isText cs    =  ( c &lt;&gt; element e, empty)</font>-<a name="(line147)"></a>    <font color=Red>|</font> otherwise        <font color=Red>=</font>  <font color=Green><u>let</u></font> <font color=Cyan>(</font>cs0<font color=Cyan>,</font>d0<font color=Cyan>)</font> <font color=Red>=</font> carryscan carrycontent cs <font color=Cyan>(</font>text <font color=Magenta>"&gt;"</font><font color=Cyan>)</font>-<a name="(line148)"></a>                          <font color=Green><u>in</u></font>-<a name="(line149)"></a>                          <font color=Cyan>(</font> c <font color=Cyan>&lt;&gt;</font>-<a name="(line150)"></a>                            text <font color=Magenta>"&lt;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attribute <font color=Green><u>as</u></font><font color=Cyan>)</font> <font color=Cyan>$$</font>-<a name="(line151)"></a>                            nest <font color=Magenta>2</font> <font color=Cyan>(</font>vcat cs0<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> <font color=Blue>--- $$</font>-<a name="(line152)"></a>                            d0 <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&lt;/"</font> <font color=Cyan>&lt;&gt;</font> text n-<a name="(line153)"></a>                          <font color=Cyan>,</font> text <font color=Magenta>"&gt;"</font><font color=Cyan>)</font>-<a name="(line154)"></a><a name="carrycontent"></a>carrycontent <font color=Cyan>(</font>CElem e <font color=Green><u>_</u></font><font color=Cyan>)</font> c   <font color=Red>=</font> carryelem e c-<a name="(line155)"></a>carrycontent <font color=Cyan>(</font>CString False s <font color=Green><u>_</u></font><font color=Cyan>)</font> c <font color=Red>=</font> <font color=Cyan>(</font>c <font color=Cyan>&lt;&gt;</font> chardata s<font color=Cyan>,</font> empty<font color=Cyan>)</font>-<a name="(line156)"></a>carrycontent <font color=Cyan>(</font>CString True  s <font color=Green><u>_</u></font><font color=Cyan>)</font> c <font color=Red>=</font> <font color=Cyan>(</font>c <font color=Cyan>&lt;&gt;</font> cdsect s<font color=Cyan>,</font> empty<font color=Cyan>)</font>-<a name="(line157)"></a>carrycontent <font color=Cyan>(</font>CRef r <font color=Green><u>_</u></font><font color=Cyan>)</font> c    <font color=Red>=</font> <font color=Cyan>(</font>c <font color=Cyan>&lt;&gt;</font> reference r<font color=Cyan>,</font> empty<font color=Cyan>)</font>-<a name="(line158)"></a>carrycontent <font color=Cyan>(</font>CMisc m <font color=Green><u>_</u></font><font color=Cyan>)</font> c   <font color=Red>=</font> <font color=Cyan>(</font>c <font color=Cyan>&lt;&gt;</font> misc m<font color=Cyan>,</font> empty<font color=Cyan>)</font>-<a name="(line159)"></a>-<a name="(line160)"></a><a name="carryscan"></a>carryscan <font color=Red>::</font> <font color=Cyan>(</font>a<font color=Red>-&gt;</font>c<font color=Red>-&gt;</font><font color=Cyan>(</font>b<font color=Cyan>,</font>c<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Red>-&gt;</font> <font color=Red>[</font>a<font color=Red>]</font> <font color=Red>-&gt;</font> c <font color=Red>-&gt;</font> <font color=Cyan>(</font><font color=Red>[</font>b<font color=Red>]</font><font color=Cyan>,</font>c<font color=Cyan>)</font>-<a name="(line161)"></a>carryscan f []     c <font color=Red>=</font> <font color=Cyan>(</font>[]<font color=Cyan>,</font>c<font color=Cyan>)</font>-<a name="(line162)"></a>carryscan f <font color=Cyan>(</font>a<font color=Red><b>:</b></font><font color=Green><u>as</u></font><font color=Cyan>)</font> c <font color=Red>=</font> <font color=Green><u>let</u></font> <font color=Cyan>(</font>b<font color=Cyan>,</font> c0<font color=Cyan>)</font> <font color=Red>=</font> f a c-<a name="(line163)"></a>                           <font color=Cyan>(</font>bs<font color=Cyan>,</font>c1<font color=Cyan>)</font> <font color=Red>=</font> carryscan f <font color=Green><u>as</u></font> c0-<a name="(line164)"></a>                       <font color=Green><u>in</u></font> <font color=Cyan>(</font>b<font color=Red><b>:</b></font>bs<font color=Cyan>,</font> c1<font color=Cyan>)</font>-<a name="(line165)"></a>-<a name="(line166)"></a><font color=Blue>--carryelem e@(Elem n as cs) c</font>-<a name="(line167)"></a><font color=Blue>--  | isText (head cs) =</font>-<a name="(line168)"></a><font color=Blue>--        ( start &lt;&gt;</font>-<a name="(line169)"></a><font color=Blue>--          text "&gt;" &lt;&gt; hcat (map content cs) &lt;&gt; text "&lt;/" &lt;&gt; text n</font>-<a name="(line170)"></a><font color=Blue>--        , text "&gt;")</font>-<a name="(line171)"></a><font color=Blue>--  | otherwise =</font>-<a name="(line172)"></a><font color=Blue>--        let (d,c0) = foldl carrycontent (start, text "&gt;") cs in</font>-<a name="(line173)"></a><font color=Blue>--        ( d &lt;&gt; c0 &lt;&gt; text "&lt;/" &lt;&gt; text n</font>-<a name="(line174)"></a><font color=Blue>--        , text "&gt;")</font>-<a name="(line175)"></a><font color=Blue>--  where start = c &lt;&gt; text "&lt;" &lt;&gt; text n &lt;+&gt; fsep (map attribute as)</font>-<a name="(line176)"></a><font color=Blue>--</font>-<a name="(line177)"></a><font color=Blue>--carrycontent (d,c) (CElem e)   = let (d',c') = carryelem e c in</font>-<a name="(line178)"></a><font color=Blue>--                                 (d $$ nest 2 d',       c')</font>-<a name="(line179)"></a><font color=Blue>--carrycontent (d,c) (CString _ s) = (d &lt;&gt; c &lt;&gt; chardata s, empty)</font>-<a name="(line180)"></a><font color=Blue>--carrycontent (d,c) (CRef r)    = (d &lt;&gt; c &lt;&gt; reference r,empty)</font>-<a name="(line181)"></a><font color=Blue>--carrycontent (d,c) (CMisc m)   = (d $$ c &lt;&gt; misc m,     empty)</font>-<a name="(line182)"></a>+<a name="(line72)"></a>+<a name="(line73)"></a><font color=Blue>----</font>+<a name="(line74)"></a><font color=Blue>-- Now for the XML pretty-printing interface.</font>+<a name="(line75)"></a><font color=Blue>-- (Basically copied direct from Text.XML.HaXml.Pretty).</font>+<a name="(line76)"></a>+<a name="(line77)"></a><a name="document"></a>document <font color=Red>::</font> Document i <font color=Red>-&gt;</font> ByteString+<a name="(line78)"></a><a name="prolog"></a>prolog   <font color=Red>::</font> Prolog     <font color=Red>-&gt;</font> ByteString+<a name="(line79)"></a><a name="xmldecl"></a>xmldecl  <font color=Red>::</font> XMLDecl    <font color=Red>-&gt;</font> ByteString+<a name="(line80)"></a><a name="misc"></a>misc     <font color=Red>::</font> Misc       <font color=Red>-&gt;</font> ByteString+<a name="(line81)"></a><a name="sddecl"></a>sddecl   <font color=Red>::</font> Bool       <font color=Red>-&gt;</font> ByteString+<a name="(line82)"></a>+<a name="(line83)"></a><a name="doctypedecl"></a>doctypedecl   <font color=Red>::</font> DocTypeDecl   <font color=Red>-&gt;</font> ByteString+<a name="(line84)"></a><a name="markupdecl"></a>markupdecl    <font color=Red>::</font> MarkupDecl    <font color=Red>-&gt;</font> ByteString+<a name="(line85)"></a><a name="extsubset"></a>extsubset     <font color=Red>::</font> ExtSubset     <font color=Red>-&gt;</font> ByteString+<a name="(line86)"></a><a name="extsubsetdecl"></a>extsubsetdecl <font color=Red>::</font> ExtSubsetDecl <font color=Red>-&gt;</font> ByteString+<a name="(line87)"></a><a name="cp"></a>cp            <font color=Red>::</font> CP            <font color=Red>-&gt;</font> ByteString+<a name="(line88)"></a>+<a name="(line89)"></a><a name="element"></a>element   <font color=Red>::</font> Element i <font color=Red>-&gt;</font> ByteString+<a name="(line90)"></a><a name="attribute"></a>attribute <font color=Red>::</font> Attribute <font color=Red>-&gt;</font> ByteString+<a name="(line91)"></a><a name="content"></a>content   <font color=Red>::</font> Content i <font color=Red>-&gt;</font> ByteString+<a name="(line92)"></a>+<a name="(line93)"></a><font color=Blue>----</font>+<a name="(line94)"></a>+<a name="(line95)"></a>document <font color=Cyan>(</font>Document p <font color=Green><u>_</u></font> e m<font color=Cyan>)</font><font color=Red>=</font> prolog p <font color=Cyan>$$</font> element e <font color=Cyan>$$</font> vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map misc m<font color=Cyan>)</font>+<a name="(line96)"></a>prolog <font color=Cyan>(</font>Prolog x m1 dtd m2<font color=Cyan>)</font><font color=Red>=</font> maybe xmldecl x <font color=Cyan>$$</font>+<a name="(line97)"></a>                             vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map misc m1<font color=Cyan>)</font> <font color=Cyan>$$</font>+<a name="(line98)"></a>                             maybe doctypedecl dtd <font color=Cyan>$$</font>+<a name="(line99)"></a>                             vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map misc m2<font color=Cyan>)</font>+<a name="(line100)"></a>xmldecl <font color=Cyan>(</font>XMLDecl v e sd<font color=Cyan>)</font>   <font color=Red>=</font> text <font color=Magenta>"&lt;?xml version='"</font> <font color=Cyan>&lt;&gt;</font> text v <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font> <font color=Cyan>&lt;+&gt;</font>+<a name="(line101)"></a>                             maybe encodingdecl e <font color=Cyan>&lt;+&gt;</font>+<a name="(line102)"></a>                             maybe sddecl sd <font color=Cyan>&lt;+&gt;</font>+<a name="(line103)"></a>                             text <font color=Magenta>"?&gt;"</font>+<a name="(line104)"></a>misc <font color=Cyan>(</font>Comment s<font color=Cyan>)</font>           <font color=Red>=</font> text <font color=Magenta>"&lt;!--"</font> <font color=Cyan>&lt;+&gt;</font> text s <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>"--&gt;"</font>+<a name="(line105)"></a>misc <font color=Cyan>(</font>PI <font color=Cyan>(</font>n<font color=Cyan>,</font>s<font color=Cyan>)</font><font color=Cyan>)</font>            <font color=Red>=</font> text <font color=Magenta>"&lt;?"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> text s <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>"?&gt;"</font>+<a name="(line106)"></a>sddecl sd   <font color=Red>|</font> sd           <font color=Red>=</font> text <font color=Magenta>"standalone='yes'"</font>+<a name="(line107)"></a>            <font color=Red>|</font> otherwise    <font color=Red>=</font> text <font color=Magenta>"standalone='no'"</font>+<a name="(line108)"></a>doctypedecl <font color=Cyan>(</font>DTD n eid ds<font color=Cyan>)</font> <font color=Red>=</font> <font color=Green><u>if</u></font> Prelude<font color=Cyan>.</font>null ds <font color=Green><u>then</u></font> +<a name="(line109)"></a>                                  hd <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&gt;"</font>+<a name="(line110)"></a>                             <font color=Green><u>else</u></font> hd <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>" ["</font> <font color=Cyan>$$</font>+<a name="(line111)"></a>                                  vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map markupdecl ds<font color=Cyan>)</font> <font color=Cyan>$$</font> text <font color=Magenta>"]&gt;"</font>+<a name="(line112)"></a>                           <font color=Green><u>where</u></font> hd <font color=Red>=</font> text <font color=Magenta>"&lt;!DOCTYPE"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>+<a name="(line113)"></a>                                      maybe externalid eid+<a name="(line114)"></a>markupdecl <font color=Cyan>(</font>Element e<font color=Cyan>)</font>     <font color=Red>=</font> elementdecl e+<a name="(line115)"></a>markupdecl <font color=Cyan>(</font>AttList a<font color=Cyan>)</font>     <font color=Red>=</font> attlistdecl a+<a name="(line116)"></a>markupdecl <font color=Cyan>(</font>Entity e<font color=Cyan>)</font>      <font color=Red>=</font> entitydecl e+<a name="(line117)"></a>markupdecl <font color=Cyan>(</font>Notation n<font color=Cyan>)</font>    <font color=Red>=</font> notationdecl n+<a name="(line118)"></a>markupdecl <font color=Cyan>(</font>MarkupMisc m<font color=Cyan>)</font>  <font color=Red>=</font> misc m+<a name="(line119)"></a><font color=Blue>--markupdecl (MarkupPE p m)  = peref p</font>+<a name="(line120)"></a>extsubset <font color=Cyan>(</font>ExtSubset t ds<font color=Cyan>)</font> <font color=Red>=</font> maybe textdecl t <font color=Cyan>$$</font>+<a name="(line121)"></a>                             vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map extsubsetdecl ds<font color=Cyan>)</font>+<a name="(line122)"></a>extsubsetdecl <font color=Cyan>(</font>ExtMarkupDecl m<font color=Cyan>)</font>      <font color=Red>=</font> markupdecl m+<a name="(line123)"></a>extsubsetdecl <font color=Cyan>(</font>ExtConditionalSect c<font color=Cyan>)</font> <font color=Red>=</font> conditionalsect c+<a name="(line124)"></a><font color=Blue>--extsubsetdecl (ExtPEReference p e)   = peref p</font>+<a name="(line125)"></a>+<a name="(line126)"></a>element <font color=Cyan>(</font>Elem n <font color=Green><u>as</u></font> []<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>+<a name="(line127)"></a>                         fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attribute <font color=Green><u>as</u></font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"/&gt;"</font>+<a name="(line128)"></a>element e<font color=Red>@</font><font color=Cyan>(</font>Elem n <font color=Green><u>as</u></font> cs<font color=Cyan>)</font>+<a name="(line129)"></a><font color=Blue>--  | any isText cs    = text "&lt;" &lt;&gt; text n &lt;+&gt; fsep (map attribute as) &lt;&gt;</font>+<a name="(line130)"></a><font color=Blue>--                       text "&gt;" &lt;&gt; hcat (map content cs) &lt;&gt;</font>+<a name="(line131)"></a><font color=Blue>--                       text "&lt;/" &lt;&gt; text n &lt;&gt; text "&gt;"</font>+<a name="(line132)"></a>    <font color=Red>|</font> isText <font color=Cyan>(</font>head cs<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attribute <font color=Green><u>as</u></font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>+<a name="(line133)"></a>                         text <font color=Magenta>"&gt;"</font> <font color=Cyan>&lt;&gt;</font> hcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map content cs<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>+<a name="(line134)"></a>                         text <font color=Magenta>"&lt;/"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&gt;"</font>+<a name="(line135)"></a>    <font color=Red>|</font> otherwise        <font color=Red>=</font> <font color=Green><u>let</u></font> <font color=Cyan>(</font>d<font color=Cyan>,</font>c<font color=Cyan>)</font> <font color=Red>=</font> carryelem e empty+<a name="(line136)"></a>                         <font color=Green><u>in</u></font> d <font color=Cyan>&lt;&gt;</font> c+<a name="(line137)"></a>+<a name="(line138)"></a><a name="isText"></a>isText <font color=Cyan>(</font>CString <font color=Green><u>_</u></font> <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> True+<a name="(line139)"></a>isText <font color=Cyan>(</font>CRef <font color=Green><u>_</u></font> <font color=Green><u>_</u></font><font color=Cyan>)</font>      <font color=Red>=</font> True+<a name="(line140)"></a>isText <font color=Green><u>_</u></font>               <font color=Red>=</font> False+<a name="(line141)"></a>+<a name="(line142)"></a><a name="carryelem"></a>carryelem <font color=Cyan>(</font>Elem n <font color=Green><u>as</u></font> []<font color=Cyan>)</font> c+<a name="(line143)"></a>                       <font color=Red>=</font> <font color=Cyan>(</font> c <font color=Cyan>&lt;&gt;</font>+<a name="(line144)"></a>                           text <font color=Magenta>"&lt;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attribute <font color=Green><u>as</u></font><font color=Cyan>)</font>+<a name="(line145)"></a>                         <font color=Cyan>,</font> text <font color=Magenta>"/&gt;"</font><font color=Cyan>)</font>+<a name="(line146)"></a>carryelem e<font color=Red>@</font><font color=Cyan>(</font>Elem n <font color=Green><u>as</u></font> cs<font color=Cyan>)</font> c+<a name="(line147)"></a><font color=Blue>--  | any isText cs    =  ( c &lt;&gt; element e, empty)</font>+<a name="(line148)"></a>    <font color=Red>|</font> otherwise        <font color=Red>=</font>  <font color=Green><u>let</u></font> <font color=Cyan>(</font>cs0<font color=Cyan>,</font>d0<font color=Cyan>)</font> <font color=Red>=</font> carryscan carrycontent cs <font color=Cyan>(</font>text <font color=Magenta>"&gt;"</font><font color=Cyan>)</font>+<a name="(line149)"></a>                          <font color=Green><u>in</u></font>+<a name="(line150)"></a>                          <font color=Cyan>(</font> c <font color=Cyan>&lt;&gt;</font>+<a name="(line151)"></a>                            text <font color=Magenta>"&lt;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attribute <font color=Green><u>as</u></font><font color=Cyan>)</font> <font color=Cyan>$$</font>+<a name="(line152)"></a>                            nest <font color=Magenta>2</font> <font color=Cyan>(</font>vcat cs0<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> <font color=Blue>--- $$</font>+<a name="(line153)"></a>                            d0 <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&lt;/"</font> <font color=Cyan>&lt;&gt;</font> text n+<a name="(line154)"></a>                          <font color=Cyan>,</font> text <font color=Magenta>"&gt;"</font><font color=Cyan>)</font>+<a name="(line155)"></a><a name="carrycontent"></a>carrycontent <font color=Cyan>(</font>CElem e <font color=Green><u>_</u></font><font color=Cyan>)</font> c   <font color=Red>=</font> carryelem e c+<a name="(line156)"></a>carrycontent <font color=Cyan>(</font>CString False s <font color=Green><u>_</u></font><font color=Cyan>)</font> c <font color=Red>=</font> <font color=Cyan>(</font>c <font color=Cyan>&lt;&gt;</font> chardata s<font color=Cyan>,</font> empty<font color=Cyan>)</font>+<a name="(line157)"></a>carrycontent <font color=Cyan>(</font>CString True  s <font color=Green><u>_</u></font><font color=Cyan>)</font> c <font color=Red>=</font> <font color=Cyan>(</font>c <font color=Cyan>&lt;&gt;</font> cdsect s<font color=Cyan>,</font> empty<font color=Cyan>)</font>+<a name="(line158)"></a>carrycontent <font color=Cyan>(</font>CRef r <font color=Green><u>_</u></font><font color=Cyan>)</font> c    <font color=Red>=</font> <font color=Cyan>(</font>c <font color=Cyan>&lt;&gt;</font> reference r<font color=Cyan>,</font> empty<font color=Cyan>)</font>+<a name="(line159)"></a>carrycontent <font color=Cyan>(</font>CMisc m <font color=Green><u>_</u></font><font color=Cyan>)</font> c   <font color=Red>=</font> <font color=Cyan>(</font>c <font color=Cyan>&lt;&gt;</font> misc m<font color=Cyan>,</font> empty<font color=Cyan>)</font>+<a name="(line160)"></a>+<a name="(line161)"></a><a name="carryscan"></a>carryscan <font color=Red>::</font> <font color=Cyan>(</font>a<font color=Red>-&gt;</font>c<font color=Red>-&gt;</font><font color=Cyan>(</font>b<font color=Cyan>,</font>c<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Red>-&gt;</font> <font color=Red>[</font>a<font color=Red>]</font> <font color=Red>-&gt;</font> c <font color=Red>-&gt;</font> <font color=Cyan>(</font><font color=Red>[</font>b<font color=Red>]</font><font color=Cyan>,</font>c<font color=Cyan>)</font>+<a name="(line162)"></a>carryscan f []     c <font color=Red>=</font> <font color=Cyan>(</font>[]<font color=Cyan>,</font>c<font color=Cyan>)</font>+<a name="(line163)"></a>carryscan f <font color=Cyan>(</font>a<font color=Red><b>:</b></font><font color=Green><u>as</u></font><font color=Cyan>)</font> c <font color=Red>=</font> <font color=Green><u>let</u></font> <font color=Cyan>(</font>b<font color=Cyan>,</font> c0<font color=Cyan>)</font> <font color=Red>=</font> f a c+<a name="(line164)"></a>                           <font color=Cyan>(</font>bs<font color=Cyan>,</font>c1<font color=Cyan>)</font> <font color=Red>=</font> carryscan f <font color=Green><u>as</u></font> c0+<a name="(line165)"></a>                       <font color=Green><u>in</u></font> <font color=Cyan>(</font>b<font color=Red><b>:</b></font>bs<font color=Cyan>,</font> c1<font color=Cyan>)</font>+<a name="(line166)"></a>+<a name="(line167)"></a><font color=Blue>--carryelem e@(Elem n as cs) c</font>+<a name="(line168)"></a><font color=Blue>--  | isText (head cs) =</font>+<a name="(line169)"></a><font color=Blue>--        ( start &lt;&gt;</font>+<a name="(line170)"></a><font color=Blue>--          text "&gt;" &lt;&gt; hcat (map content cs) &lt;&gt; text "&lt;/" &lt;&gt; text n</font>+<a name="(line171)"></a><font color=Blue>--        , text "&gt;")</font>+<a name="(line172)"></a><font color=Blue>--  | otherwise =</font>+<a name="(line173)"></a><font color=Blue>--        let (d,c0) = foldl carrycontent (start, text "&gt;") cs in</font>+<a name="(line174)"></a><font color=Blue>--        ( d &lt;&gt; c0 &lt;&gt; text "&lt;/" &lt;&gt; text n</font>+<a name="(line175)"></a><font color=Blue>--        , text "&gt;")</font>+<a name="(line176)"></a><font color=Blue>--  where start = c &lt;&gt; text "&lt;" &lt;&gt; text n &lt;+&gt; fsep (map attribute as)</font>+<a name="(line177)"></a><font color=Blue>--</font>+<a name="(line178)"></a><font color=Blue>--carrycontent (d,c) (CElem e)   = let (d',c') = carryelem e c in</font>+<a name="(line179)"></a><font color=Blue>--                                 (d $$ nest 2 d',       c')</font>+<a name="(line180)"></a><font color=Blue>--carrycontent (d,c) (CString _ s) = (d &lt;&gt; c &lt;&gt; chardata s, empty)</font>+<a name="(line181)"></a><font color=Blue>--carrycontent (d,c) (CRef r)    = (d &lt;&gt; c &lt;&gt; reference r,empty)</font>+<a name="(line182)"></a><font color=Blue>--carrycontent (d,c) (CMisc m)   = (d $$ c &lt;&gt; misc m,     empty)</font> <a name="(line183)"></a>-<a name="(line184)"></a>attribute <font color=Cyan>(</font>n<font color=Cyan>,</font>v<font color=Cyan>)</font>             <font color=Red>=</font> text n <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"="</font> <font color=Cyan>&lt;&gt;</font> attvalue v-<a name="(line185)"></a>content <font color=Cyan>(</font>CElem e <font color=Green><u>_</u></font><font color=Cyan>)</font>         <font color=Red>=</font> element e-<a name="(line186)"></a>content <font color=Cyan>(</font>CString False s <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> chardata s-<a name="(line187)"></a>content <font color=Cyan>(</font>CString True s <font color=Green><u>_</u></font><font color=Cyan>)</font>  <font color=Red>=</font> cdsect s-<a name="(line188)"></a>content <font color=Cyan>(</font>CRef r <font color=Green><u>_</u></font><font color=Cyan>)</font>          <font color=Red>=</font> reference r-<a name="(line189)"></a>content <font color=Cyan>(</font>CMisc m <font color=Green><u>_</u></font><font color=Cyan>)</font>         <font color=Red>=</font> misc m-<a name="(line190)"></a>-<a name="(line191)"></a><a name="elementdecl"></a>elementdecl <font color=Cyan>(</font>ElementDecl n cs<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;!ELEMENT"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>-<a name="(line192)"></a>                                 contentspec cs <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&gt;"</font>-<a name="(line193)"></a><a name="contentspec"></a>contentspec EMPTY              <font color=Red>=</font> text <font color=Magenta>"EMPTY"</font>-<a name="(line194)"></a>contentspec ANY                <font color=Red>=</font> text <font color=Magenta>"ANY"</font>-<a name="(line195)"></a>contentspec <font color=Cyan>(</font>Mixed m<font color=Cyan>)</font>          <font color=Red>=</font> mixed m-<a name="(line196)"></a>contentspec <font color=Cyan>(</font>ContentSpec c<font color=Cyan>)</font>    <font color=Red>=</font> cp c-<a name="(line197)"></a><font color=Blue>--contentspec (ContentPE p cs)   = peref p</font>-<a name="(line198)"></a>cp <font color=Cyan>(</font>TagName n m<font color=Cyan>)</font>       <font color=Red>=</font> text n <font color=Cyan>&lt;&gt;</font> modifier m-<a name="(line199)"></a>cp <font color=Cyan>(</font>Choice cs m<font color=Cyan>)</font>       <font color=Red>=</font> parens <font color=Cyan>(</font>hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>"|"</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map cp cs<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>-<a name="(line200)"></a>                           modifier m-<a name="(line201)"></a>cp <font color=Cyan>(</font>Seq cs m<font color=Cyan>)</font>          <font color=Red>=</font> parens <font color=Cyan>(</font>hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>","</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map cp cs<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>-<a name="(line202)"></a>                           modifier m-<a name="(line203)"></a><a name="modifier"></a><font color=Blue>--cp (CPPE p c)          = peref p</font>-<a name="(line204)"></a>modifier None          <font color=Red>=</font> empty-<a name="(line205)"></a>modifier Query         <font color=Red>=</font> text <font color=Magenta>"?"</font>-<a name="(line206)"></a>modifier Star          <font color=Red>=</font> text <font color=Magenta>"*"</font>-<a name="(line207)"></a>modifier Plus          <font color=Red>=</font> text <font color=Magenta>"+"</font>-<a name="(line208)"></a><a name="mixed"></a>mixed  PCDATA          <font color=Red>=</font> text <font color=Magenta>"(#PCDATA)"</font>-<a name="(line209)"></a>mixed <font color=Cyan>(</font>PCDATAplus ns<font color=Cyan>)</font>  <font color=Red>=</font> text <font color=Magenta>"(#PCDATA |"</font> <font color=Cyan>&lt;+&gt;</font>-<a name="(line210)"></a>                         hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>"|"</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map text ns<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>-<a name="(line211)"></a>                         text <font color=Magenta>")*"</font>-<a name="(line212)"></a>-<a name="(line213)"></a><a name="attlistdecl"></a>attlistdecl <font color=Cyan>(</font>AttListDecl n ds<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;!ATTLIST"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>-<a name="(line214)"></a>                                 fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attdef ds<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&gt;"</font>-<a name="(line215)"></a><a name="attdef"></a>attdef <font color=Cyan>(</font>AttDef n t d<font color=Cyan>)</font>          <font color=Red>=</font> text n <font color=Cyan>&lt;+&gt;</font> atttype t <font color=Cyan>&lt;+&gt;</font> defaultdecl d-<a name="(line216)"></a><a name="atttype"></a>atttype  StringType            <font color=Red>=</font> text <font color=Magenta>"CDATA"</font>-<a name="(line217)"></a>atttype <font color=Cyan>(</font>TokenizedType t<font color=Cyan>)</font>      <font color=Red>=</font> tokenizedtype t-<a name="(line218)"></a>atttype <font color=Cyan>(</font>EnumeratedType t<font color=Cyan>)</font>     <font color=Red>=</font> enumeratedtype t-<a name="(line219)"></a><a name="tokenizedtype"></a>tokenizedtype ID               <font color=Red>=</font> text <font color=Magenta>"ID"</font>-<a name="(line220)"></a>tokenizedtype IDREF            <font color=Red>=</font> text <font color=Magenta>"IDREF"</font>-<a name="(line221)"></a>tokenizedtype IDREFS           <font color=Red>=</font> text <font color=Magenta>"IDREFS"</font>-<a name="(line222)"></a>tokenizedtype ENTITY           <font color=Red>=</font> text <font color=Magenta>"ENTITY"</font>-<a name="(line223)"></a>tokenizedtype ENTITIES         <font color=Red>=</font> text <font color=Magenta>"ENTITIES"</font>-<a name="(line224)"></a>tokenizedtype NMTOKEN          <font color=Red>=</font> text <font color=Magenta>"NMTOKEN"</font>-<a name="(line225)"></a>tokenizedtype NMTOKENS         <font color=Red>=</font> text <font color=Magenta>"NMTOKENS"</font>-<a name="(line226)"></a><a name="enumeratedtype"></a>enumeratedtype <font color=Cyan>(</font>NotationType n<font color=Cyan>)</font><font color=Red>=</font> notationtype n-<a name="(line227)"></a>enumeratedtype <font color=Cyan>(</font>Enumeration e<font color=Cyan>)</font> <font color=Red>=</font> enumeration e-<a name="(line228)"></a><a name="notationtype"></a>notationtype ns                <font color=Red>=</font> text <font color=Magenta>"NOTATION"</font> <font color=Cyan>&lt;+&gt;</font>-<a name="(line229)"></a>                                 parens <font color=Cyan>(</font>hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>"|"</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map text ns<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line230)"></a><a name="enumeration"></a>enumeration ns                 <font color=Red>=</font> parens <font color=Cyan>(</font>hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>"|"</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map nmtoken ns<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line231)"></a><a name="defaultdecl"></a>defaultdecl  REQUIRED          <font color=Red>=</font> text <font color=Magenta>"#REQUIRED"</font>-<a name="(line232)"></a>defaultdecl  IMPLIED           <font color=Red>=</font> text <font color=Magenta>"#IMPLIED"</font>-<a name="(line233)"></a>defaultdecl <font color=Cyan>(</font>DefaultTo a f<font color=Cyan>)</font>    <font color=Red>=</font> maybe <font color=Cyan>(</font>const <font color=Cyan>(</font>text <font color=Magenta>"#FIXED"</font><font color=Cyan>)</font><font color=Cyan>)</font> f <font color=Cyan>&lt;+&gt;</font> attvalue a-<a name="(line234)"></a><a name="conditionalsect"></a>conditionalsect <font color=Cyan>(</font>IncludeSect i<font color=Cyan>)</font><font color=Red>=</font> text <font color=Magenta>"&lt;![INCLUDE ["</font> <font color=Cyan>&lt;+&gt;</font>-<a name="(line235)"></a>                                 vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map extsubsetdecl i<font color=Cyan>)</font> <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>"]]&gt;"</font>-<a name="(line236)"></a>conditionalsect <font color=Cyan>(</font>IgnoreSect i<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;![IGNORE ["</font> <font color=Cyan>&lt;+&gt;</font>-<a name="(line237)"></a>                                 fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map ignoresectcontents i<font color=Cyan>)</font> <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>"]]&gt;"</font>-<a name="(line238)"></a><a name="ignore"></a>ignore <font color=Cyan>(</font>Ignore<font color=Cyan>)</font>                <font color=Red>=</font> empty-<a name="(line239)"></a><a name="ignoresectcontents"></a>ignoresectcontents <font color=Cyan>(</font>IgnoreSectContents i is<font color=Cyan>)</font>-<a name="(line240)"></a>                               <font color=Red>=</font> ignore i <font color=Cyan>&lt;+&gt;</font> vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map internal is<font color=Cyan>)</font>-<a name="(line241)"></a>                          <font color=Green><u>where</u></font> internal <font color=Cyan>(</font>ics<font color=Cyan>,</font>i<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;![["</font> <font color=Cyan>&lt;+&gt;</font>-<a name="(line242)"></a>                                                   ignoresectcontents ics <font color=Cyan>&lt;+&gt;</font>-<a name="(line243)"></a>                                                   text <font color=Magenta>"]]&gt;"</font> <font color=Cyan>&lt;+&gt;</font> ignore i-<a name="(line244)"></a><a name="reference"></a>reference <font color=Cyan>(</font>RefEntity er<font color=Cyan>)</font>       <font color=Red>=</font> entityref er-<a name="(line245)"></a>reference <font color=Cyan>(</font>RefChar cr<font color=Cyan>)</font>         <font color=Red>=</font> charref cr-<a name="(line246)"></a><a name="entityref"></a>entityref n                    <font color=Red>=</font> text <font color=Magenta>"&amp;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>";"</font>-<a name="(line247)"></a><a name="charref"></a>charref c                      <font color=Red>=</font> text <font color=Magenta>"&amp;#"</font> <font color=Cyan>&lt;&gt;</font> text <font color=Cyan>(</font>show c<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>";"</font>-<a name="(line248)"></a><a name="entitydecl"></a>entitydecl <font color=Cyan>(</font>EntityGEDecl d<font color=Cyan>)</font>    <font color=Red>=</font> gedecl d-<a name="(line249)"></a>entitydecl <font color=Cyan>(</font>EntityPEDecl d<font color=Cyan>)</font>    <font color=Red>=</font> pedecl d-<a name="(line250)"></a><a name="gedecl"></a>gedecl <font color=Cyan>(</font>GEDecl n ed<font color=Cyan>)</font>           <font color=Red>=</font> text <font color=Magenta>"&lt;!ENTITY"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> entitydef ed <font color=Cyan>&lt;&gt;</font>-<a name="(line251)"></a>                                 text <font color=Magenta>"&gt;"</font>-<a name="(line252)"></a><a name="pedecl"></a>pedecl <font color=Cyan>(</font>PEDecl n pd<font color=Cyan>)</font>           <font color=Red>=</font> text <font color=Magenta>"&lt;!ENTITY %"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> pedef pd <font color=Cyan>&lt;&gt;</font>-<a name="(line253)"></a>                                 text <font color=Magenta>"&gt;"</font>-<a name="(line254)"></a><a name="entitydef"></a>entitydef <font color=Cyan>(</font>DefEntityValue ev<font color=Cyan>)</font>  <font color=Red>=</font> entityvalue ev-<a name="(line255)"></a>entitydef <font color=Cyan>(</font>DefExternalID i nd<font color=Cyan>)</font> <font color=Red>=</font> externalid i <font color=Cyan>&lt;+&gt;</font> maybe ndatadecl nd-<a name="(line256)"></a><a name="pedef"></a>pedef <font color=Cyan>(</font>PEDefEntityValue ev<font color=Cyan>)</font>    <font color=Red>=</font> entityvalue ev-<a name="(line257)"></a>pedef <font color=Cyan>(</font>PEDefExternalID eid<font color=Cyan>)</font>    <font color=Red>=</font> externalid eid-<a name="(line258)"></a><a name="externalid"></a>externalid <font color=Cyan>(</font>SYSTEM sl<font color=Cyan>)</font>         <font color=Red>=</font> text <font color=Magenta>"SYSTEM"</font> <font color=Cyan>&lt;+&gt;</font> systemliteral sl-<a name="(line259)"></a>externalid <font color=Cyan>(</font>PUBLIC i sl<font color=Cyan>)</font>       <font color=Red>=</font> text <font color=Magenta>"PUBLIC"</font> <font color=Cyan>&lt;+&gt;</font> pubidliteral i <font color=Cyan>&lt;+&gt;</font>-<a name="(line260)"></a>                                 systemliteral sl-<a name="(line261)"></a><a name="ndatadecl"></a>ndatadecl <font color=Cyan>(</font>NDATA n<font color=Cyan>)</font>            <font color=Red>=</font> text <font color=Magenta>"NDATA"</font> <font color=Cyan>&lt;+&gt;</font> text n-<a name="(line262)"></a><a name="textdecl"></a>textdecl <font color=Cyan>(</font>TextDecl vi ed<font color=Cyan>)</font>      <font color=Red>=</font> text <font color=Magenta>"&lt;?xml"</font> <font color=Cyan>&lt;+&gt;</font> maybe text vi <font color=Cyan>&lt;+&gt;</font>-<a name="(line263)"></a>                                 encodingdecl ed <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"?&gt;"</font>-<a name="(line264)"></a><a name="extparsedent"></a>extparsedent <font color=Cyan>(</font>ExtParsedEnt t c<font color=Cyan>)</font><font color=Red>=</font> maybe textdecl t <font color=Cyan>&lt;+&gt;</font> content c-<a name="(line265)"></a><a name="extpe"></a>extpe <font color=Cyan>(</font>ExtPE t esd<font color=Cyan>)</font>            <font color=Red>=</font> maybe textdecl t <font color=Cyan>&lt;+&gt;</font>-<a name="(line266)"></a>                                 vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map extsubsetdecl esd<font color=Cyan>)</font>-<a name="(line267)"></a><a name="notationdecl"></a>notationdecl <font color=Cyan>(</font>NOTATION n e<font color=Cyan>)</font>    <font color=Red>=</font> text <font color=Magenta>"&lt;!NOTATION"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>-<a name="(line268)"></a>                                 either externalid publicid e <font color=Cyan>&lt;&gt;</font>-<a name="(line269)"></a>                                 text <font color=Magenta>"&gt;"</font>-<a name="(line270)"></a><a name="publicid"></a>publicid <font color=Cyan>(</font>PUBLICID p<font color=Cyan>)</font>          <font color=Red>=</font> text <font color=Magenta>"PUBLICID"</font> <font color=Cyan>&lt;+&gt;</font> pubidliteral p-<a name="(line271)"></a><a name="encodingdecl"></a>encodingdecl <font color=Cyan>(</font>EncodingDecl s<font color=Cyan>)</font>  <font color=Red>=</font> text <font color=Magenta>"encoding='"</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font>-<a name="(line272)"></a><a name="nmtoken"></a>nmtoken s                      <font color=Red>=</font> text s-<a name="(line273)"></a><a name="attvalue"></a>attvalue <font color=Cyan>(</font>AttValue esr<font color=Cyan>)</font>        <font color=Red>=</font> text <font color=Magenta>"\""</font> <font color=Cyan>&lt;&gt;</font>-<a name="(line274)"></a>                                 hcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map <font color=Cyan>(</font>either text reference<font color=Cyan>)</font> esr<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>-<a name="(line275)"></a>                                 text <font color=Magenta>"\""</font>-<a name="(line276)"></a><a name="entityvalue"></a>entityvalue <font color=Cyan>(</font>EntityValue evs<font color=Cyan>)</font>-<a name="(line277)"></a>  <font color=Red>|</font> containsDoubleQuote evs    <font color=Red>=</font> text <font color=Magenta>"'"</font>  <font color=Cyan>&lt;&gt;</font> hcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map ev evs<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font>-<a name="(line278)"></a>  <font color=Red>|</font> otherwise                  <font color=Red>=</font> text <font color=Magenta>"\""</font> <font color=Cyan>&lt;&gt;</font> hcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map ev evs<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"\""</font>-<a name="(line279)"></a><a name="ev"></a>ev <font color=Cyan>(</font>EVString s<font color=Cyan>)</font>                <font color=Red>=</font> text s-<a name="(line280)"></a><font color=Blue>--ev (EVPERef p e)               = peref p</font>-<a name="(line281)"></a>ev <font color=Cyan>(</font>EVRef r<font color=Cyan>)</font>                   <font color=Red>=</font> reference r-<a name="(line282)"></a><a name="pubidliteral"></a>pubidliteral <font color=Cyan>(</font>PubidLiteral s<font color=Cyan>)</font>-<a name="(line283)"></a>    <font color=Red>|</font> toWord8 <font color=Magenta>'"'</font> <font color=Cyan>`elem`</font> <font color=Cyan>(</font>pack s<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"'"</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font>-<a name="(line284)"></a>    <font color=Red>|</font> otherwise                <font color=Red>=</font> text <font color=Magenta>"\""</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"\""</font>-<a name="(line285)"></a><a name="systemliteral"></a>systemliteral <font color=Cyan>(</font>SystemLiteral s<font color=Cyan>)</font>-<a name="(line286)"></a>    <font color=Red>|</font> toWord8 <font color=Magenta>'"'</font> <font color=Cyan>`elem`</font> <font color=Cyan>(</font>pack s<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"'"</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font>-<a name="(line287)"></a>    <font color=Red>|</font> otherwise                <font color=Red>=</font> text <font color=Magenta>"\""</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"\""</font>-<a name="(line288)"></a><a name="chardata"></a>chardata s                     <font color=Red>=</font> <font color=Blue>{-if all isSpace s then empty else-}</font> text s-<a name="(line289)"></a><a name="cdsect"></a>cdsect c                       <font color=Red>=</font> text <font color=Magenta>"&lt;![CDATA["</font> <font color=Cyan>&lt;&gt;</font> chardata c <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"]]&gt;"</font>-<a name="(line290)"></a>-<a name="(line291)"></a><a name="toWord8"></a><font color=Blue>--toWord8 :: Char -&gt; Word8</font>-<a name="(line292)"></a>toWord8 <font color=Red>=</font> toEnum <font color=Cyan>.</font> fromEnum-<a name="(line293)"></a>-<a name="(line294)"></a><a name="containsDoubleQuote"></a><font color=Blue>----</font>-<a name="(line295)"></a>containsDoubleQuote evs <font color=Red>=</font> any csq evs-<a name="(line296)"></a>    <font color=Green><u>where</u></font> csq <font color=Cyan>(</font>EVString s<font color=Cyan>)</font> <font color=Red>=</font> toWord8 <font color=Magenta>'"'</font> <font color=Cyan>`elem`</font> <font color=Cyan>(</font>pack s<font color=Cyan>)</font>-<a name="(line297)"></a>          csq <font color=Green><u>_</u></font>            <font color=Red>=</font> False+<a name="(line184)"></a>+<a name="(line185)"></a>attribute <font color=Cyan>(</font>n<font color=Cyan>,</font>v<font color=Cyan>)</font>             <font color=Red>=</font> text n <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"="</font> <font color=Cyan>&lt;&gt;</font> attvalue v+<a name="(line186)"></a>content <font color=Cyan>(</font>CElem e <font color=Green><u>_</u></font><font color=Cyan>)</font>         <font color=Red>=</font> element e+<a name="(line187)"></a>content <font color=Cyan>(</font>CString False s <font color=Green><u>_</u></font><font color=Cyan>)</font> <font color=Red>=</font> chardata s+<a name="(line188)"></a>content <font color=Cyan>(</font>CString True s <font color=Green><u>_</u></font><font color=Cyan>)</font>  <font color=Red>=</font> cdsect s+<a name="(line189)"></a>content <font color=Cyan>(</font>CRef r <font color=Green><u>_</u></font><font color=Cyan>)</font>          <font color=Red>=</font> reference r+<a name="(line190)"></a>content <font color=Cyan>(</font>CMisc m <font color=Green><u>_</u></font><font color=Cyan>)</font>         <font color=Red>=</font> misc m+<a name="(line191)"></a>+<a name="(line192)"></a><a name="elementdecl"></a>elementdecl <font color=Cyan>(</font>ElementDecl n cs<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;!ELEMENT"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>+<a name="(line193)"></a>                                 contentspec cs <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&gt;"</font>+<a name="(line194)"></a><a name="contentspec"></a>contentspec EMPTY              <font color=Red>=</font> text <font color=Magenta>"EMPTY"</font>+<a name="(line195)"></a>contentspec ANY                <font color=Red>=</font> text <font color=Magenta>"ANY"</font>+<a name="(line196)"></a>contentspec <font color=Cyan>(</font>Mixed m<font color=Cyan>)</font>          <font color=Red>=</font> mixed m+<a name="(line197)"></a>contentspec <font color=Cyan>(</font>ContentSpec c<font color=Cyan>)</font>    <font color=Red>=</font> cp c+<a name="(line198)"></a><font color=Blue>--contentspec (ContentPE p cs)   = peref p</font>+<a name="(line199)"></a>cp <font color=Cyan>(</font>TagName n m<font color=Cyan>)</font>       <font color=Red>=</font> text n <font color=Cyan>&lt;&gt;</font> modifier m+<a name="(line200)"></a>cp <font color=Cyan>(</font>Choice cs m<font color=Cyan>)</font>       <font color=Red>=</font> parens <font color=Cyan>(</font>hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>"|"</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map cp cs<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>+<a name="(line201)"></a>                           modifier m+<a name="(line202)"></a>cp <font color=Cyan>(</font>Seq cs m<font color=Cyan>)</font>          <font color=Red>=</font> parens <font color=Cyan>(</font>hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>","</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map cp cs<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>+<a name="(line203)"></a>                           modifier m+<a name="(line204)"></a><a name="modifier"></a><font color=Blue>--cp (CPPE p c)          = peref p</font>+<a name="(line205)"></a>modifier None          <font color=Red>=</font> empty+<a name="(line206)"></a>modifier Query         <font color=Red>=</font> text <font color=Magenta>"?"</font>+<a name="(line207)"></a>modifier Star          <font color=Red>=</font> text <font color=Magenta>"*"</font>+<a name="(line208)"></a>modifier Plus          <font color=Red>=</font> text <font color=Magenta>"+"</font>+<a name="(line209)"></a><a name="mixed"></a>mixed  PCDATA          <font color=Red>=</font> text <font color=Magenta>"(#PCDATA)"</font>+<a name="(line210)"></a>mixed <font color=Cyan>(</font>PCDATAplus ns<font color=Cyan>)</font>  <font color=Red>=</font> text <font color=Magenta>"(#PCDATA |"</font> <font color=Cyan>&lt;+&gt;</font>+<a name="(line211)"></a>                         hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>"|"</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map text ns<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>+<a name="(line212)"></a>                         text <font color=Magenta>")*"</font>+<a name="(line213)"></a>+<a name="(line214)"></a><a name="attlistdecl"></a>attlistdecl <font color=Cyan>(</font>AttListDecl n ds<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;!ATTLIST"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>+<a name="(line215)"></a>                                 fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map attdef ds<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"&gt;"</font>+<a name="(line216)"></a><a name="attdef"></a>attdef <font color=Cyan>(</font>AttDef n t d<font color=Cyan>)</font>          <font color=Red>=</font> text n <font color=Cyan>&lt;+&gt;</font> atttype t <font color=Cyan>&lt;+&gt;</font> defaultdecl d+<a name="(line217)"></a><a name="atttype"></a>atttype  StringType            <font color=Red>=</font> text <font color=Magenta>"CDATA"</font>+<a name="(line218)"></a>atttype <font color=Cyan>(</font>TokenizedType t<font color=Cyan>)</font>      <font color=Red>=</font> tokenizedtype t+<a name="(line219)"></a>atttype <font color=Cyan>(</font>EnumeratedType t<font color=Cyan>)</font>     <font color=Red>=</font> enumeratedtype t+<a name="(line220)"></a><a name="tokenizedtype"></a>tokenizedtype ID               <font color=Red>=</font> text <font color=Magenta>"ID"</font>+<a name="(line221)"></a>tokenizedtype IDREF            <font color=Red>=</font> text <font color=Magenta>"IDREF"</font>+<a name="(line222)"></a>tokenizedtype IDREFS           <font color=Red>=</font> text <font color=Magenta>"IDREFS"</font>+<a name="(line223)"></a>tokenizedtype ENTITY           <font color=Red>=</font> text <font color=Magenta>"ENTITY"</font>+<a name="(line224)"></a>tokenizedtype ENTITIES         <font color=Red>=</font> text <font color=Magenta>"ENTITIES"</font>+<a name="(line225)"></a>tokenizedtype NMTOKEN          <font color=Red>=</font> text <font color=Magenta>"NMTOKEN"</font>+<a name="(line226)"></a>tokenizedtype NMTOKENS         <font color=Red>=</font> text <font color=Magenta>"NMTOKENS"</font>+<a name="(line227)"></a><a name="enumeratedtype"></a>enumeratedtype <font color=Cyan>(</font>NotationType n<font color=Cyan>)</font><font color=Red>=</font> notationtype n+<a name="(line228)"></a>enumeratedtype <font color=Cyan>(</font>Enumeration e<font color=Cyan>)</font> <font color=Red>=</font> enumeration e+<a name="(line229)"></a><a name="notationtype"></a>notationtype ns                <font color=Red>=</font> text <font color=Magenta>"NOTATION"</font> <font color=Cyan>&lt;+&gt;</font>+<a name="(line230)"></a>                                 parens <font color=Cyan>(</font>hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>"|"</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map text ns<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="(line231)"></a><a name="enumeration"></a>enumeration ns                 <font color=Red>=</font> parens <font color=Cyan>(</font>hcat <font color=Cyan>(</font>intersperse <font color=Cyan>(</font>text <font color=Magenta>"|"</font><font color=Cyan>)</font> <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map nmtoken ns<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="(line232)"></a><a name="defaultdecl"></a>defaultdecl  REQUIRED          <font color=Red>=</font> text <font color=Magenta>"#REQUIRED"</font>+<a name="(line233)"></a>defaultdecl  IMPLIED           <font color=Red>=</font> text <font color=Magenta>"#IMPLIED"</font>+<a name="(line234)"></a>defaultdecl <font color=Cyan>(</font>DefaultTo a f<font color=Cyan>)</font>    <font color=Red>=</font> maybe <font color=Cyan>(</font>const <font color=Cyan>(</font>text <font color=Magenta>"#FIXED"</font><font color=Cyan>)</font><font color=Cyan>)</font> f <font color=Cyan>&lt;+&gt;</font> attvalue a+<a name="(line235)"></a><a name="conditionalsect"></a>conditionalsect <font color=Cyan>(</font>IncludeSect i<font color=Cyan>)</font><font color=Red>=</font> text <font color=Magenta>"&lt;![INCLUDE ["</font> <font color=Cyan>&lt;+&gt;</font>+<a name="(line236)"></a>                                 vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map extsubsetdecl i<font color=Cyan>)</font> <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>"]]&gt;"</font>+<a name="(line237)"></a>conditionalsect <font color=Cyan>(</font>IgnoreSect i<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;![IGNORE ["</font> <font color=Cyan>&lt;+&gt;</font>+<a name="(line238)"></a>                                 fsep <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map ignoresectcontents i<font color=Cyan>)</font> <font color=Cyan>&lt;+&gt;</font> text <font color=Magenta>"]]&gt;"</font>+<a name="(line239)"></a><a name="ignore"></a>ignore <font color=Cyan>(</font>Ignore<font color=Cyan>)</font>                <font color=Red>=</font> empty+<a name="(line240)"></a><a name="ignoresectcontents"></a>ignoresectcontents <font color=Cyan>(</font>IgnoreSectContents i is<font color=Cyan>)</font>+<a name="(line241)"></a>                               <font color=Red>=</font> ignore i <font color=Cyan>&lt;+&gt;</font> vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map internal is<font color=Cyan>)</font>+<a name="(line242)"></a>                          <font color=Green><u>where</u></font> internal <font color=Cyan>(</font>ics<font color=Cyan>,</font>i<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"&lt;![["</font> <font color=Cyan>&lt;+&gt;</font>+<a name="(line243)"></a>                                                   ignoresectcontents ics <font color=Cyan>&lt;+&gt;</font>+<a name="(line244)"></a>                                                   text <font color=Magenta>"]]&gt;"</font> <font color=Cyan>&lt;+&gt;</font> ignore i+<a name="(line245)"></a><a name="reference"></a>reference <font color=Cyan>(</font>RefEntity er<font color=Cyan>)</font>       <font color=Red>=</font> entityref er+<a name="(line246)"></a>reference <font color=Cyan>(</font>RefChar cr<font color=Cyan>)</font>         <font color=Red>=</font> charref cr+<a name="(line247)"></a><a name="entityref"></a>entityref n                    <font color=Red>=</font> text <font color=Magenta>"&amp;"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>";"</font>+<a name="(line248)"></a><a name="charref"></a>charref c                      <font color=Red>=</font> text <font color=Magenta>"&amp;#"</font> <font color=Cyan>&lt;&gt;</font> text <font color=Cyan>(</font>show c<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>";"</font>+<a name="(line249)"></a><a name="entitydecl"></a>entitydecl <font color=Cyan>(</font>EntityGEDecl d<font color=Cyan>)</font>    <font color=Red>=</font> gedecl d+<a name="(line250)"></a>entitydecl <font color=Cyan>(</font>EntityPEDecl d<font color=Cyan>)</font>    <font color=Red>=</font> pedecl d+<a name="(line251)"></a><a name="gedecl"></a>gedecl <font color=Cyan>(</font>GEDecl n ed<font color=Cyan>)</font>           <font color=Red>=</font> text <font color=Magenta>"&lt;!ENTITY"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> entitydef ed <font color=Cyan>&lt;&gt;</font>+<a name="(line252)"></a>                                 text <font color=Magenta>"&gt;"</font>+<a name="(line253)"></a><a name="pedecl"></a>pedecl <font color=Cyan>(</font>PEDecl n pd<font color=Cyan>)</font>           <font color=Red>=</font> text <font color=Magenta>"&lt;!ENTITY %"</font> <font color=Cyan>&lt;&gt;</font> text n <font color=Cyan>&lt;+&gt;</font> pedef pd <font color=Cyan>&lt;&gt;</font>+<a name="(line254)"></a>                                 text <font color=Magenta>"&gt;"</font>+<a name="(line255)"></a><a name="entitydef"></a>entitydef <font color=Cyan>(</font>DefEntityValue ev<font color=Cyan>)</font>  <font color=Red>=</font> entityvalue ev+<a name="(line256)"></a>entitydef <font color=Cyan>(</font>DefExternalID i nd<font color=Cyan>)</font> <font color=Red>=</font> externalid i <font color=Cyan>&lt;+&gt;</font> maybe ndatadecl nd+<a name="(line257)"></a><a name="pedef"></a>pedef <font color=Cyan>(</font>PEDefEntityValue ev<font color=Cyan>)</font>    <font color=Red>=</font> entityvalue ev+<a name="(line258)"></a>pedef <font color=Cyan>(</font>PEDefExternalID eid<font color=Cyan>)</font>    <font color=Red>=</font> externalid eid+<a name="(line259)"></a><a name="externalid"></a>externalid <font color=Cyan>(</font>SYSTEM sl<font color=Cyan>)</font>         <font color=Red>=</font> text <font color=Magenta>"SYSTEM"</font> <font color=Cyan>&lt;+&gt;</font> systemliteral sl+<a name="(line260)"></a>externalid <font color=Cyan>(</font>PUBLIC i sl<font color=Cyan>)</font>       <font color=Red>=</font> text <font color=Magenta>"PUBLIC"</font> <font color=Cyan>&lt;+&gt;</font> pubidliteral i <font color=Cyan>&lt;+&gt;</font>+<a name="(line261)"></a>                                 systemliteral sl+<a name="(line262)"></a><a name="ndatadecl"></a>ndatadecl <font color=Cyan>(</font>NDATA n<font color=Cyan>)</font>            <font color=Red>=</font> text <font color=Magenta>"NDATA"</font> <font color=Cyan>&lt;+&gt;</font> text n+<a name="(line263)"></a><a name="textdecl"></a>textdecl <font color=Cyan>(</font>TextDecl vi ed<font color=Cyan>)</font>      <font color=Red>=</font> text <font color=Magenta>"&lt;?xml"</font> <font color=Cyan>&lt;+&gt;</font> maybe text vi <font color=Cyan>&lt;+&gt;</font>+<a name="(line264)"></a>                                 encodingdecl ed <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"?&gt;"</font>+<a name="(line265)"></a><a name="extparsedent"></a>extparsedent <font color=Cyan>(</font>ExtParsedEnt t c<font color=Cyan>)</font><font color=Red>=</font> maybe textdecl t <font color=Cyan>&lt;+&gt;</font> content c+<a name="(line266)"></a><a name="extpe"></a>extpe <font color=Cyan>(</font>ExtPE t esd<font color=Cyan>)</font>            <font color=Red>=</font> maybe textdecl t <font color=Cyan>&lt;+&gt;</font>+<a name="(line267)"></a>                                 vcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map extsubsetdecl esd<font color=Cyan>)</font>+<a name="(line268)"></a><a name="notationdecl"></a>notationdecl <font color=Cyan>(</font>NOTATION n e<font color=Cyan>)</font>    <font color=Red>=</font> text <font color=Magenta>"&lt;!NOTATION"</font> <font color=Cyan>&lt;+&gt;</font> text n <font color=Cyan>&lt;+&gt;</font>+<a name="(line269)"></a>                                 either externalid publicid e <font color=Cyan>&lt;&gt;</font>+<a name="(line270)"></a>                                 text <font color=Magenta>"&gt;"</font>+<a name="(line271)"></a><a name="publicid"></a>publicid <font color=Cyan>(</font>PUBLICID p<font color=Cyan>)</font>          <font color=Red>=</font> text <font color=Magenta>"PUBLICID"</font> <font color=Cyan>&lt;+&gt;</font> pubidliteral p+<a name="(line272)"></a><a name="encodingdecl"></a>encodingdecl <font color=Cyan>(</font>EncodingDecl s<font color=Cyan>)</font>  <font color=Red>=</font> text <font color=Magenta>"encoding='"</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font>+<a name="(line273)"></a><a name="nmtoken"></a>nmtoken s                      <font color=Red>=</font> text s+<a name="(line274)"></a><a name="attvalue"></a>attvalue <font color=Cyan>(</font>AttValue esr<font color=Cyan>)</font>        <font color=Red>=</font> text <font color=Magenta>"\""</font> <font color=Cyan>&lt;&gt;</font>+<a name="(line275)"></a>                                 hcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map <font color=Cyan>(</font>either text reference<font color=Cyan>)</font> esr<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font>+<a name="(line276)"></a>                                 text <font color=Magenta>"\""</font>+<a name="(line277)"></a><a name="entityvalue"></a>entityvalue <font color=Cyan>(</font>EntityValue evs<font color=Cyan>)</font>+<a name="(line278)"></a>  <font color=Red>|</font> containsDoubleQuote evs    <font color=Red>=</font> text <font color=Magenta>"'"</font>  <font color=Cyan>&lt;&gt;</font> hcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map ev evs<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font>+<a name="(line279)"></a>  <font color=Red>|</font> otherwise                  <font color=Red>=</font> text <font color=Magenta>"\""</font> <font color=Cyan>&lt;&gt;</font> hcat <font color=Cyan>(</font>Prelude<font color=Cyan>.</font>map ev evs<font color=Cyan>)</font> <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"\""</font>+<a name="(line280)"></a><a name="ev"></a>ev <font color=Cyan>(</font>EVString s<font color=Cyan>)</font>                <font color=Red>=</font> text s+<a name="(line281)"></a><font color=Blue>--ev (EVPERef p e)               = peref p</font>+<a name="(line282)"></a>ev <font color=Cyan>(</font>EVRef r<font color=Cyan>)</font>                   <font color=Red>=</font> reference r+<a name="(line283)"></a><a name="pubidliteral"></a>pubidliteral <font color=Cyan>(</font>PubidLiteral s<font color=Cyan>)</font>+<a name="(line284)"></a>    <font color=Red>|</font> toWord8 <font color=Magenta>'"'</font> <font color=Cyan>`elem`</font> <font color=Cyan>(</font>pack s<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"'"</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font>+<a name="(line285)"></a>    <font color=Red>|</font> otherwise                <font color=Red>=</font> text <font color=Magenta>"\""</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"\""</font>+<a name="(line286)"></a><a name="systemliteral"></a>systemliteral <font color=Cyan>(</font>SystemLiteral s<font color=Cyan>)</font>+<a name="(line287)"></a>    <font color=Red>|</font> toWord8 <font color=Magenta>'"'</font> <font color=Cyan>`elem`</font> <font color=Cyan>(</font>pack s<font color=Cyan>)</font> <font color=Red>=</font> text <font color=Magenta>"'"</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"'"</font>+<a name="(line288)"></a>    <font color=Red>|</font> otherwise                <font color=Red>=</font> text <font color=Magenta>"\""</font> <font color=Cyan>&lt;&gt;</font> text s <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"\""</font>+<a name="(line289)"></a><a name="chardata"></a>chardata s                     <font color=Red>=</font> <font color=Blue>{-if all isSpace s then empty else-}</font> text s+<a name="(line290)"></a><a name="cdsect"></a>cdsect c                       <font color=Red>=</font> text <font color=Magenta>"&lt;![CDATA["</font> <font color=Cyan>&lt;&gt;</font> chardata c <font color=Cyan>&lt;&gt;</font> text <font color=Magenta>"]]&gt;"</font>+<a name="(line291)"></a>+<a name="(line292)"></a><a name="toWord8"></a><font color=Blue>--toWord8 :: Char -&gt; Word8</font>+<a name="(line293)"></a>toWord8 <font color=Red>=</font> toEnum <font color=Cyan>.</font> fromEnum+<a name="(line294)"></a>+<a name="(line295)"></a><a name="containsDoubleQuote"></a><font color=Blue>----</font>+<a name="(line296)"></a>containsDoubleQuote evs <font color=Red>=</font> any csq evs+<a name="(line297)"></a>    <font color=Green><u>where</u></font> csq <font color=Cyan>(</font>EVString s<font color=Cyan>)</font> <font color=Red>=</font> toWord8 <font color=Magenta>'"'</font> <font color=Cyan>`elem`</font> <font color=Cyan>(</font>pack s<font color=Cyan>)</font>+<a name="(line298)"></a>          csq <font color=Green><u>_</u></font>            <font color=Red>=</font> False </pre> </html>
docs/HaXml/src/Text/XML/HaXml/Parse.html view
@@ -731,153 +731,157 @@ <a name="(line729)"></a> <a name="(line730)"></a><a name="pereference"></a>pereference <font color=Red>::</font> XParser PEReference <a name="(line731)"></a>pereference <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line732)"></a>    bracket <font color=Cyan>(</font>tok TokPercent<font color=Cyan>)</font> <font color=Cyan>(</font>tok TokSemi<font color=Cyan>)</font> nmtoken-<a name="(line733)"></a>-<a name="(line734)"></a><a name="entitydecl"></a>entitydecl <font color=Red>::</font> XParser EntityDecl-<a name="(line735)"></a>entitydecl <font color=Red>=</font>-<a name="(line736)"></a>    <font color=Cyan>(</font> gedecl <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> EntityGEDecl<font color=Cyan>)</font> <font color=Cyan>`onFail`</font>-<a name="(line737)"></a>    <font color=Cyan>(</font> pedecl <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> EntityPEDecl<font color=Cyan>)</font>-<a name="(line738)"></a>-<a name="(line739)"></a><a name="gedecl"></a>gedecl <font color=Red>::</font> XParser GEDecl-<a name="(line740)"></a>gedecl <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line741)"></a>    tok TokSpecialOpen-<a name="(line742)"></a>    tok <font color=Cyan>(</font>TokSpecial ENTITYx<font color=Cyan>)</font>-<a name="(line743)"></a>    n <font color=Red>&lt;-</font> name-<a name="(line744)"></a>    e <font color=Red>&lt;-</font> entitydef <font color=Cyan>`adjustErrBad`</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"in general entity defn "</font><font color=Cyan>++</font>n<font color=Cyan>++</font><font color=Magenta>",\n"</font><font color=Cyan>)</font><font color=Cyan>++</font><font color=Cyan>)</font>-<a name="(line745)"></a>    tok TokAnyClose <font color=Cyan>`onFail`</font> failBadP <font color=Cyan>(</font><font color=Magenta>"expected &gt; terminating G ENTITY decl "</font><font color=Cyan>++</font>n<font color=Cyan>)</font>-<a name="(line746)"></a>    stUpdate <font color=Cyan>(</font>addGE n e<font color=Cyan>)</font> <font color=Cyan>`debug`</font> <font color=Cyan>(</font><font color=Magenta>"added GE defn &amp;"</font><font color=Cyan>++</font>n<font color=Cyan>++</font><font color=Magenta>";"</font><font color=Cyan>)</font>-<a name="(line747)"></a>    return <font color=Cyan>(</font>GEDecl n e<font color=Cyan>)</font>-<a name="(line748)"></a>-<a name="(line749)"></a><a name="pedecl"></a>pedecl <font color=Red>::</font> XParser PEDecl-<a name="(line750)"></a>pedecl <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line751)"></a>    tok TokSpecialOpen-<a name="(line752)"></a>    tok <font color=Cyan>(</font>TokSpecial ENTITYx<font color=Cyan>)</font>-<a name="(line753)"></a>    tok TokPercent-<a name="(line754)"></a>    n <font color=Red>&lt;-</font> name-<a name="(line755)"></a>    e <font color=Red>&lt;-</font> pedef <font color=Cyan>`adjustErrBad`</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"in parameter entity defn "</font><font color=Cyan>++</font>n<font color=Cyan>++</font><font color=Magenta>",\n"</font><font color=Cyan>)</font><font color=Cyan>++</font><font color=Cyan>)</font>-<a name="(line756)"></a>    tok TokAnyClose <font color=Cyan>`onFail`</font> failBadP <font color=Cyan>(</font><font color=Magenta>"expected &gt; terminating P ENTITY decl "</font><font color=Cyan>++</font>n<font color=Cyan>)</font>-<a name="(line757)"></a>    stUpdate <font color=Cyan>(</font>addPE n e<font color=Cyan>)</font> <font color=Cyan>`debug`</font> <font color=Cyan>(</font><font color=Magenta>"added PE defn %"</font><font color=Cyan>++</font>n<font color=Cyan>++</font><font color=Magenta>";\n"</font><font color=Cyan>++</font>show e<font color=Cyan>)</font>-<a name="(line758)"></a>    return <font color=Cyan>(</font>PEDecl n e<font color=Cyan>)</font>-<a name="(line759)"></a>-<a name="(line760)"></a><a name="entitydef"></a>entitydef <font color=Red>::</font> XParser EntityDef-<a name="(line761)"></a>entitydef <font color=Red>=</font>-<a name="(line762)"></a>    oneOf' <font color=Red>[</font> <font color=Cyan>(</font><font color=Magenta>"entityvalue"</font><font color=Cyan>,</font> entityvalue <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> DefEntityValue<font color=Cyan>)</font>-<a name="(line763)"></a>           <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"external"</font><font color=Cyan>,</font>    <font color=Green><u>do</u></font> eid <font color=Red>&lt;-</font> externalid-<a name="(line764)"></a>                                ndd <font color=Red>&lt;-</font> maybe ndatadecl-<a name="(line765)"></a>                                return <font color=Cyan>(</font>DefExternalID eid ndd<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line766)"></a>           <font color=Red>]</font>-<a name="(line767)"></a>-<a name="(line768)"></a><a name="pedef"></a>pedef <font color=Red>::</font> XParser PEDef-<a name="(line769)"></a>pedef <font color=Red>=</font>-<a name="(line770)"></a>    oneOf' <font color=Red>[</font> <font color=Cyan>(</font><font color=Magenta>"entityvalue"</font><font color=Cyan>,</font> entityvalue <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> PEDefEntityValue<font color=Cyan>)</font>-<a name="(line771)"></a>           <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"externalid"</font><font color=Cyan>,</font>  externalid  <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> PEDefExternalID<font color=Cyan>)</font>-<a name="(line772)"></a>           <font color=Red>]</font>-<a name="(line773)"></a>-<a name="(line774)"></a><a name="externalid"></a>externalid <font color=Red>::</font> XParser ExternalID-<a name="(line775)"></a>externalid <font color=Red>=</font>-<a name="(line776)"></a>    oneOf' <font color=Red>[</font> <font color=Cyan>(</font><font color=Magenta>"SYSTEM"</font><font color=Cyan>,</font> <font color=Green><u>do</u></font> word <font color=Magenta>"SYSTEM"</font>-<a name="(line777)"></a>                           s <font color=Red>&lt;-</font> systemliteral-<a name="(line778)"></a>                           return <font color=Cyan>(</font>SYSTEM s<font color=Cyan>)</font> <font color=Cyan>)</font>-<a name="(line779)"></a>           <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"PUBLIC"</font><font color=Cyan>,</font> <font color=Green><u>do</u></font> word <font color=Magenta>"PUBLIC"</font>-<a name="(line780)"></a>                           p <font color=Red>&lt;-</font> pubidliteral+<a name="(line732)"></a><font color=Blue>--  bracket (tok TokPercent) (tok TokSemi) nmtoken</font>+<a name="(line733)"></a>    tok TokPercent+<a name="(line734)"></a>    p <font color=Red>&lt;-</font> nmtoken+<a name="(line735)"></a>    tok TokSemi+<a name="(line736)"></a>    return p+<a name="(line737)"></a>+<a name="(line738)"></a><a name="entitydecl"></a>entitydecl <font color=Red>::</font> XParser EntityDecl+<a name="(line739)"></a>entitydecl <font color=Red>=</font>+<a name="(line740)"></a>    <font color=Cyan>(</font> gedecl <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> EntityGEDecl<font color=Cyan>)</font> <font color=Cyan>`onFail`</font>+<a name="(line741)"></a>    <font color=Cyan>(</font> pedecl <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> EntityPEDecl<font color=Cyan>)</font>+<a name="(line742)"></a>+<a name="(line743)"></a><a name="gedecl"></a>gedecl <font color=Red>::</font> XParser GEDecl+<a name="(line744)"></a>gedecl <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line745)"></a>    tok TokSpecialOpen+<a name="(line746)"></a>    tok <font color=Cyan>(</font>TokSpecial ENTITYx<font color=Cyan>)</font>+<a name="(line747)"></a>    n <font color=Red>&lt;-</font> name+<a name="(line748)"></a>    e <font color=Red>&lt;-</font> entitydef <font color=Cyan>`adjustErrBad`</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"in general entity defn "</font><font color=Cyan>++</font>n<font color=Cyan>++</font><font color=Magenta>",\n"</font><font color=Cyan>)</font><font color=Cyan>++</font><font color=Cyan>)</font>+<a name="(line749)"></a>    tok TokAnyClose <font color=Cyan>`onFail`</font> failBadP <font color=Cyan>(</font><font color=Magenta>"expected &gt; terminating G ENTITY decl "</font><font color=Cyan>++</font>n<font color=Cyan>)</font>+<a name="(line750)"></a>    stUpdate <font color=Cyan>(</font>addGE n e<font color=Cyan>)</font> <font color=Cyan>`debug`</font> <font color=Cyan>(</font><font color=Magenta>"added GE defn &amp;"</font><font color=Cyan>++</font>n<font color=Cyan>++</font><font color=Magenta>";"</font><font color=Cyan>)</font>+<a name="(line751)"></a>    return <font color=Cyan>(</font>GEDecl n e<font color=Cyan>)</font>+<a name="(line752)"></a>+<a name="(line753)"></a><a name="pedecl"></a>pedecl <font color=Red>::</font> XParser PEDecl+<a name="(line754)"></a>pedecl <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line755)"></a>    tok TokSpecialOpen+<a name="(line756)"></a>    tok <font color=Cyan>(</font>TokSpecial ENTITYx<font color=Cyan>)</font>+<a name="(line757)"></a>    tok TokPercent+<a name="(line758)"></a>    n <font color=Red>&lt;-</font> name+<a name="(line759)"></a>    e <font color=Red>&lt;-</font> pedef <font color=Cyan>`adjustErrBad`</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"in parameter entity defn "</font><font color=Cyan>++</font>n<font color=Cyan>++</font><font color=Magenta>",\n"</font><font color=Cyan>)</font><font color=Cyan>++</font><font color=Cyan>)</font>+<a name="(line760)"></a>    tok TokAnyClose <font color=Cyan>`onFail`</font> failBadP <font color=Cyan>(</font><font color=Magenta>"expected &gt; terminating P ENTITY decl "</font><font color=Cyan>++</font>n<font color=Cyan>)</font>+<a name="(line761)"></a>    stUpdate <font color=Cyan>(</font>addPE n e<font color=Cyan>)</font> <font color=Cyan>`debug`</font> <font color=Cyan>(</font><font color=Magenta>"added PE defn %"</font><font color=Cyan>++</font>n<font color=Cyan>++</font><font color=Magenta>";\n"</font><font color=Cyan>++</font>show e<font color=Cyan>)</font>+<a name="(line762)"></a>    return <font color=Cyan>(</font>PEDecl n e<font color=Cyan>)</font>+<a name="(line763)"></a>+<a name="(line764)"></a><a name="entitydef"></a>entitydef <font color=Red>::</font> XParser EntityDef+<a name="(line765)"></a>entitydef <font color=Red>=</font>+<a name="(line766)"></a>    oneOf' <font color=Red>[</font> <font color=Cyan>(</font><font color=Magenta>"entityvalue"</font><font color=Cyan>,</font> entityvalue <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> DefEntityValue<font color=Cyan>)</font>+<a name="(line767)"></a>           <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"external"</font><font color=Cyan>,</font>    <font color=Green><u>do</u></font> eid <font color=Red>&lt;-</font> externalid+<a name="(line768)"></a>                                ndd <font color=Red>&lt;-</font> maybe ndatadecl+<a name="(line769)"></a>                                return <font color=Cyan>(</font>DefExternalID eid ndd<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="(line770)"></a>           <font color=Red>]</font>+<a name="(line771)"></a>+<a name="(line772)"></a><a name="pedef"></a>pedef <font color=Red>::</font> XParser PEDef+<a name="(line773)"></a>pedef <font color=Red>=</font>+<a name="(line774)"></a>    oneOf' <font color=Red>[</font> <font color=Cyan>(</font><font color=Magenta>"entityvalue"</font><font color=Cyan>,</font> entityvalue <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> PEDefEntityValue<font color=Cyan>)</font>+<a name="(line775)"></a>           <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"externalid"</font><font color=Cyan>,</font>  externalid  <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> PEDefExternalID<font color=Cyan>)</font>+<a name="(line776)"></a>           <font color=Red>]</font>+<a name="(line777)"></a>+<a name="(line778)"></a><a name="externalid"></a>externalid <font color=Red>::</font> XParser ExternalID+<a name="(line779)"></a>externalid <font color=Red>=</font>+<a name="(line780)"></a>    oneOf' <font color=Red>[</font> <font color=Cyan>(</font><font color=Magenta>"SYSTEM"</font><font color=Cyan>,</font> <font color=Green><u>do</u></font> word <font color=Magenta>"SYSTEM"</font> <a name="(line781)"></a>                           s <font color=Red>&lt;-</font> systemliteral-<a name="(line782)"></a>                           return <font color=Cyan>(</font>PUBLIC p s<font color=Cyan>)</font> <font color=Cyan>)</font>-<a name="(line783)"></a>           <font color=Red>]</font>-<a name="(line784)"></a>      <font color=Cyan>`adjustErr`</font> <font color=Cyan>(</font><font color=Magenta>"looking for an external id,\n"</font><font color=Cyan>++</font><font color=Cyan>)</font>-<a name="(line785)"></a>-<a name="(line786)"></a><a name="ndatadecl"></a>ndatadecl <font color=Red>::</font> XParser NDataDecl-<a name="(line787)"></a>ndatadecl <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line788)"></a>    word <font color=Magenta>"NDATA"</font>-<a name="(line789)"></a>    n <font color=Red>&lt;-</font> name-<a name="(line790)"></a>    return <font color=Cyan>(</font>NDATA n<font color=Cyan>)</font>-<a name="(line791)"></a>-<a name="(line792)"></a><a name="textdecl"></a>textdecl <font color=Red>::</font> XParser TextDecl-<a name="(line793)"></a>textdecl <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line794)"></a>    tok TokPIOpen-<a name="(line795)"></a>    <font color=Cyan>(</font>word <font color=Magenta>"xml"</font> <font color=Cyan>`onFail`</font> word <font color=Magenta>"XML"</font><font color=Cyan>)</font>-<a name="(line796)"></a>    v <font color=Red>&lt;-</font> maybe versioninfo-<a name="(line797)"></a>    e <font color=Red>&lt;-</font> encodingdecl-<a name="(line798)"></a>    tok TokPIClose <font color=Cyan>`onFail`</font> failP <font color=Magenta>"expected ?&gt; terminating text decl"</font>-<a name="(line799)"></a>    return <font color=Cyan>(</font>TextDecl v e<font color=Cyan>)</font>-<a name="(line800)"></a>-<a name="(line801)"></a><a name="extparsedent"></a>extparsedent <font color=Red>::</font> XParser <font color=Cyan>(</font>ExtParsedEnt Posn<font color=Cyan>)</font>-<a name="(line802)"></a>extparsedent <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line803)"></a>    t <font color=Red>&lt;-</font> maybe textdecl-<a name="(line804)"></a>    c <font color=Red>&lt;-</font> content-<a name="(line805)"></a>    return <font color=Cyan>(</font>ExtParsedEnt t c<font color=Cyan>)</font>-<a name="(line806)"></a>-<a name="(line807)"></a><a name="extpe"></a>extpe <font color=Red>::</font> XParser ExtPE-<a name="(line808)"></a>extpe <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line809)"></a>    t <font color=Red>&lt;-</font> maybe textdecl-<a name="(line810)"></a>    e <font color=Red>&lt;-</font> many <font color=Cyan>(</font>peRef extsubsetdecl<font color=Cyan>)</font>-<a name="(line811)"></a>    return <font color=Cyan>(</font>ExtPE t e<font color=Cyan>)</font>-<a name="(line812)"></a>-<a name="(line813)"></a><a name="encodingdecl"></a>encodingdecl <font color=Red>::</font> XParser EncodingDecl-<a name="(line814)"></a>encodingdecl <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line815)"></a>    <font color=Cyan>(</font>word <font color=Magenta>"encoding"</font> <font color=Cyan>`onFail`</font> word <font color=Magenta>"ENCODING"</font><font color=Cyan>)</font>-<a name="(line816)"></a>    tok TokEqual <font color=Cyan>`onFail`</font> failBadP <font color=Magenta>"expected = in 'encoding' decl"</font>-<a name="(line817)"></a>    f <font color=Red>&lt;-</font> bracket <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> freetext-<a name="(line818)"></a>    return <font color=Cyan>(</font>EncodingDecl f<font color=Cyan>)</font>-<a name="(line819)"></a>-<a name="(line820)"></a><a name="notationdecl"></a>notationdecl <font color=Red>::</font> XParser NotationDecl-<a name="(line821)"></a>notationdecl <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line822)"></a>    tok TokSpecialOpen-<a name="(line823)"></a>    tok <font color=Cyan>(</font>TokSpecial NOTATIONx<font color=Cyan>)</font>-<a name="(line824)"></a>    n <font color=Red>&lt;-</font> name-<a name="(line825)"></a>    e <font color=Red>&lt;-</font> either externalid publicid-<a name="(line826)"></a>    tok TokAnyClose <font color=Cyan>`onFail`</font> failBadP <font color=Cyan>(</font><font color=Magenta>"expected &gt; terminating NOTATION decl "</font><font color=Cyan>++</font>n<font color=Cyan>)</font>-<a name="(line827)"></a>    return <font color=Cyan>(</font>NOTATION n e<font color=Cyan>)</font>-<a name="(line828)"></a>-<a name="(line829)"></a><a name="publicid"></a>publicid <font color=Red>::</font> XParser PublicID-<a name="(line830)"></a>publicid <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line831)"></a>    word <font color=Magenta>"PUBLIC"</font>-<a name="(line832)"></a>    p <font color=Red>&lt;-</font> pubidliteral-<a name="(line833)"></a>    return <font color=Cyan>(</font>PUBLICID p<font color=Cyan>)</font>-<a name="(line834)"></a>-<a name="(line835)"></a><a name="entityvalue"></a>entityvalue <font color=Red>::</font> XParser EntityValue-<a name="(line836)"></a>entityvalue <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line837)"></a> <font color=Blue>-- evs &lt;- bracket (tok TokQuote) (tok TokQuote) (many (peRef ev))</font>-<a name="(line838)"></a>    tok TokQuote-<a name="(line839)"></a>    pn <font color=Red>&lt;-</font> posn-<a name="(line840)"></a>    evs <font color=Red>&lt;-</font> many ev-<a name="(line841)"></a>    tok TokQuote <font color=Cyan>`onFail`</font> failBadP <font color=Magenta>"expected quote to terminate entityvalue"</font>-<a name="(line842)"></a>    <font color=Blue>-- quoted text must be rescanned for possible PERefs</font>-<a name="(line843)"></a>    st <font color=Red>&lt;-</font> stGet-<a name="(line844)"></a>    Prelude<font color=Cyan>.</font>either failBad <font color=Cyan>(</font>return <font color=Cyan>.</font> EntityValue<font color=Cyan>)</font> <font color=Cyan>.</font> fst3 <font color=Cyan>$</font>-<a name="(line845)"></a>                <font color=Cyan>(</font>runParser <font color=Cyan>(</font>many ev<font color=Cyan>)</font> st-<a name="(line846)"></a>                         <font color=Cyan>(</font>reLexEntityValue <font color=Cyan>(</font><font color=Red>\</font>s<font color=Red>-&gt;</font> stringify <font color=Cyan>(</font>lookupPE s st<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line847)"></a>                                           pn-<a name="(line848)"></a>                                           <font color=Cyan>(</font>flattenEV <font color=Cyan>(</font>EntityValue evs<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line849)"></a>  <font color=Green><u>where</u></font>-<a name="(line850)"></a>    stringify <font color=Cyan>(</font>Just <font color=Cyan>(</font>PEDefEntityValue ev<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Red>=</font> Just <font color=Cyan>(</font>flattenEV ev<font color=Cyan>)</font>-<a name="(line851)"></a>    stringify <font color=Green><u>_</u></font> <font color=Red>=</font> Nothing-<a name="(line852)"></a>-<a name="(line853)"></a><a name="ev"></a>ev <font color=Red>::</font> XParser EV-<a name="(line854)"></a>ev <font color=Red>=</font>-<a name="(line855)"></a>    oneOf' <font color=Red>[</font> <font color=Cyan>(</font><font color=Magenta>"string"</font><font color=Cyan>,</font>    <font color=Cyan>(</font>string<font color=Cyan>`onFail`</font>freetext<font color=Cyan>)</font> <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> EVString<font color=Cyan>)</font>-<a name="(line856)"></a>           <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"reference"</font><font color=Cyan>,</font> reference <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> EVRef<font color=Cyan>)</font>-<a name="(line857)"></a>           <font color=Red>]</font>-<a name="(line858)"></a>      <font color=Cyan>`adjustErr`</font> <font color=Cyan>(</font><font color=Magenta>"looking for entity value,\n"</font><font color=Cyan>++</font><font color=Cyan>)</font>-<a name="(line859)"></a>-<a name="(line860)"></a><a name="attvalue"></a>attvalue <font color=Red>::</font> XParser AttValue-<a name="(line861)"></a>attvalue <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line862)"></a>    avs <font color=Red>&lt;-</font> bracket <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font>-<a name="(line863)"></a>                   <font color=Cyan>(</font>many <font color=Cyan>(</font>either freetext reference<font color=Cyan>)</font><font color=Cyan>)</font>-<a name="(line864)"></a>    return <font color=Cyan>(</font>AttValue avs<font color=Cyan>)</font>-<a name="(line865)"></a>-<a name="(line866)"></a><a name="systemliteral"></a>systemliteral <font color=Red>::</font> XParser SystemLiteral-<a name="(line867)"></a>systemliteral <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line868)"></a>    s <font color=Red>&lt;-</font> bracket <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> freetext-<a name="(line869)"></a>    return <font color=Cyan>(</font>SystemLiteral s<font color=Cyan>)</font>            <font color=Blue>-- note: refs &amp;...; not permitted</font>-<a name="(line870)"></a>-<a name="(line871)"></a><a name="pubidliteral"></a>pubidliteral <font color=Red>::</font> XParser PubidLiteral-<a name="(line872)"></a>pubidliteral <font color=Red>=</font> <font color=Green><u>do</u></font>-<a name="(line873)"></a>    s <font color=Red>&lt;-</font> bracket <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> freetext-<a name="(line874)"></a>    return <font color=Cyan>(</font>PubidLiteral s<font color=Cyan>)</font>             <font color=Blue>-- note: freetext is too liberal here</font>-<a name="(line875)"></a>-<a name="(line876)"></a><a name="chardata"></a><font color=Blue>-- | Return parsed freetext (i.e. until the next markup)</font>-<a name="(line877)"></a>chardata <font color=Red>::</font> XParser CharData-<a name="(line878)"></a>chardata <font color=Red>=</font> freetext+<a name="(line782)"></a>                           return <font color=Cyan>(</font>SYSTEM s<font color=Cyan>)</font> <font color=Cyan>)</font>+<a name="(line783)"></a>           <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"PUBLIC"</font><font color=Cyan>,</font> <font color=Green><u>do</u></font> word <font color=Magenta>"PUBLIC"</font>+<a name="(line784)"></a>                           p <font color=Red>&lt;-</font> pubidliteral+<a name="(line785)"></a>                           s <font color=Red>&lt;-</font> systemliteral+<a name="(line786)"></a>                           return <font color=Cyan>(</font>PUBLIC p s<font color=Cyan>)</font> <font color=Cyan>)</font>+<a name="(line787)"></a>           <font color=Red>]</font>+<a name="(line788)"></a>      <font color=Cyan>`adjustErr`</font> <font color=Cyan>(</font><font color=Magenta>"looking for an external id,\n"</font><font color=Cyan>++</font><font color=Cyan>)</font>+<a name="(line789)"></a>+<a name="(line790)"></a><a name="ndatadecl"></a>ndatadecl <font color=Red>::</font> XParser NDataDecl+<a name="(line791)"></a>ndatadecl <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line792)"></a>    word <font color=Magenta>"NDATA"</font>+<a name="(line793)"></a>    n <font color=Red>&lt;-</font> name+<a name="(line794)"></a>    return <font color=Cyan>(</font>NDATA n<font color=Cyan>)</font>+<a name="(line795)"></a>+<a name="(line796)"></a><a name="textdecl"></a>textdecl <font color=Red>::</font> XParser TextDecl+<a name="(line797)"></a>textdecl <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line798)"></a>    tok TokPIOpen+<a name="(line799)"></a>    <font color=Cyan>(</font>word <font color=Magenta>"xml"</font> <font color=Cyan>`onFail`</font> word <font color=Magenta>"XML"</font><font color=Cyan>)</font>+<a name="(line800)"></a>    v <font color=Red>&lt;-</font> maybe versioninfo+<a name="(line801)"></a>    e <font color=Red>&lt;-</font> encodingdecl+<a name="(line802)"></a>    tok TokPIClose <font color=Cyan>`onFail`</font> failP <font color=Magenta>"expected ?&gt; terminating text decl"</font>+<a name="(line803)"></a>    return <font color=Cyan>(</font>TextDecl v e<font color=Cyan>)</font>+<a name="(line804)"></a>+<a name="(line805)"></a><a name="extparsedent"></a>extparsedent <font color=Red>::</font> XParser <font color=Cyan>(</font>ExtParsedEnt Posn<font color=Cyan>)</font>+<a name="(line806)"></a>extparsedent <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line807)"></a>    t <font color=Red>&lt;-</font> maybe textdecl+<a name="(line808)"></a>    c <font color=Red>&lt;-</font> content+<a name="(line809)"></a>    return <font color=Cyan>(</font>ExtParsedEnt t c<font color=Cyan>)</font>+<a name="(line810)"></a>+<a name="(line811)"></a><a name="extpe"></a>extpe <font color=Red>::</font> XParser ExtPE+<a name="(line812)"></a>extpe <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line813)"></a>    t <font color=Red>&lt;-</font> maybe textdecl+<a name="(line814)"></a>    e <font color=Red>&lt;-</font> many <font color=Cyan>(</font>peRef extsubsetdecl<font color=Cyan>)</font>+<a name="(line815)"></a>    return <font color=Cyan>(</font>ExtPE t e<font color=Cyan>)</font>+<a name="(line816)"></a>+<a name="(line817)"></a><a name="encodingdecl"></a>encodingdecl <font color=Red>::</font> XParser EncodingDecl+<a name="(line818)"></a>encodingdecl <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line819)"></a>    <font color=Cyan>(</font>word <font color=Magenta>"encoding"</font> <font color=Cyan>`onFail`</font> word <font color=Magenta>"ENCODING"</font><font color=Cyan>)</font>+<a name="(line820)"></a>    tok TokEqual <font color=Cyan>`onFail`</font> failBadP <font color=Magenta>"expected = in 'encoding' decl"</font>+<a name="(line821)"></a>    f <font color=Red>&lt;-</font> bracket <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> freetext+<a name="(line822)"></a>    return <font color=Cyan>(</font>EncodingDecl f<font color=Cyan>)</font>+<a name="(line823)"></a>+<a name="(line824)"></a><a name="notationdecl"></a>notationdecl <font color=Red>::</font> XParser NotationDecl+<a name="(line825)"></a>notationdecl <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line826)"></a>    tok TokSpecialOpen+<a name="(line827)"></a>    tok <font color=Cyan>(</font>TokSpecial NOTATIONx<font color=Cyan>)</font>+<a name="(line828)"></a>    n <font color=Red>&lt;-</font> name+<a name="(line829)"></a>    e <font color=Red>&lt;-</font> either externalid publicid+<a name="(line830)"></a>    tok TokAnyClose <font color=Cyan>`onFail`</font> failBadP <font color=Cyan>(</font><font color=Magenta>"expected &gt; terminating NOTATION decl "</font><font color=Cyan>++</font>n<font color=Cyan>)</font>+<a name="(line831)"></a>    return <font color=Cyan>(</font>NOTATION n e<font color=Cyan>)</font>+<a name="(line832)"></a>+<a name="(line833)"></a><a name="publicid"></a>publicid <font color=Red>::</font> XParser PublicID+<a name="(line834)"></a>publicid <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line835)"></a>    word <font color=Magenta>"PUBLIC"</font>+<a name="(line836)"></a>    p <font color=Red>&lt;-</font> pubidliteral+<a name="(line837)"></a>    return <font color=Cyan>(</font>PUBLICID p<font color=Cyan>)</font>+<a name="(line838)"></a>+<a name="(line839)"></a><a name="entityvalue"></a>entityvalue <font color=Red>::</font> XParser EntityValue+<a name="(line840)"></a>entityvalue <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line841)"></a> <font color=Blue>-- evs &lt;- bracket (tok TokQuote) (tok TokQuote) (many (peRef ev))</font>+<a name="(line842)"></a>    tok TokQuote+<a name="(line843)"></a>    pn <font color=Red>&lt;-</font> posn+<a name="(line844)"></a>    evs <font color=Red>&lt;-</font> many ev+<a name="(line845)"></a>    tok TokQuote <font color=Cyan>`onFail`</font> failBadP <font color=Magenta>"expected quote to terminate entityvalue"</font>+<a name="(line846)"></a>    <font color=Blue>-- quoted text must be rescanned for possible PERefs</font>+<a name="(line847)"></a>    st <font color=Red>&lt;-</font> stGet+<a name="(line848)"></a>    Prelude<font color=Cyan>.</font>either failBad <font color=Cyan>(</font>return <font color=Cyan>.</font> EntityValue<font color=Cyan>)</font> <font color=Cyan>.</font> fst3 <font color=Cyan>$</font>+<a name="(line849)"></a>                <font color=Cyan>(</font>runParser <font color=Cyan>(</font>many ev<font color=Cyan>)</font> st+<a name="(line850)"></a>                         <font color=Cyan>(</font>reLexEntityValue <font color=Cyan>(</font><font color=Red>\</font>s<font color=Red>-&gt;</font> stringify <font color=Cyan>(</font>lookupPE s st<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="(line851)"></a>                                           pn+<a name="(line852)"></a>                                           <font color=Cyan>(</font>flattenEV <font color=Cyan>(</font>EntityValue evs<font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font><font color=Cyan>)</font>+<a name="(line853)"></a>  <font color=Green><u>where</u></font>+<a name="(line854)"></a>    stringify <font color=Cyan>(</font>Just <font color=Cyan>(</font>PEDefEntityValue ev<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Red>=</font> Just <font color=Cyan>(</font>flattenEV ev<font color=Cyan>)</font>+<a name="(line855)"></a>    stringify <font color=Green><u>_</u></font> <font color=Red>=</font> Nothing+<a name="(line856)"></a>+<a name="(line857)"></a><a name="ev"></a>ev <font color=Red>::</font> XParser EV+<a name="(line858)"></a>ev <font color=Red>=</font>+<a name="(line859)"></a>    oneOf' <font color=Red>[</font> <font color=Cyan>(</font><font color=Magenta>"string"</font><font color=Cyan>,</font>    <font color=Cyan>(</font>string<font color=Cyan>`onFail`</font>freetext<font color=Cyan>)</font> <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> EVString<font color=Cyan>)</font>+<a name="(line860)"></a>           <font color=Cyan>,</font> <font color=Cyan>(</font><font color=Magenta>"reference"</font><font color=Cyan>,</font> reference <font color=Cyan>&gt;&gt;=</font> return <font color=Cyan>.</font> EVRef<font color=Cyan>)</font>+<a name="(line861)"></a>           <font color=Red>]</font>+<a name="(line862)"></a>      <font color=Cyan>`adjustErr`</font> <font color=Cyan>(</font><font color=Magenta>"looking for entity value,\n"</font><font color=Cyan>++</font><font color=Cyan>)</font>+<a name="(line863)"></a>+<a name="(line864)"></a><a name="attvalue"></a>attvalue <font color=Red>::</font> XParser AttValue+<a name="(line865)"></a>attvalue <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line866)"></a>    avs <font color=Red>&lt;-</font> bracket <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font>+<a name="(line867)"></a>                   <font color=Cyan>(</font>many <font color=Cyan>(</font>either freetext reference<font color=Cyan>)</font><font color=Cyan>)</font>+<a name="(line868)"></a>    return <font color=Cyan>(</font>AttValue avs<font color=Cyan>)</font>+<a name="(line869)"></a>+<a name="(line870)"></a><a name="systemliteral"></a>systemliteral <font color=Red>::</font> XParser SystemLiteral+<a name="(line871)"></a>systemliteral <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line872)"></a>    s <font color=Red>&lt;-</font> bracket <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> freetext+<a name="(line873)"></a>    return <font color=Cyan>(</font>SystemLiteral s<font color=Cyan>)</font>            <font color=Blue>-- note: refs &amp;...; not permitted</font>+<a name="(line874)"></a>+<a name="(line875)"></a><a name="pubidliteral"></a>pubidliteral <font color=Red>::</font> XParser PubidLiteral+<a name="(line876)"></a>pubidliteral <font color=Red>=</font> <font color=Green><u>do</u></font>+<a name="(line877)"></a>    s <font color=Red>&lt;-</font> bracket <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> <font color=Cyan>(</font>tok TokQuote<font color=Cyan>)</font> freetext+<a name="(line878)"></a>    return <font color=Cyan>(</font>PubidLiteral s<font color=Cyan>)</font>             <font color=Blue>-- note: freetext is too liberal here</font> <a name="(line879)"></a>+<a name="(line880)"></a><a name="chardata"></a><font color=Blue>-- | Return parsed freetext (i.e. until the next markup)</font>+<a name="(line881)"></a>chardata <font color=Red>::</font> XParser CharData+<a name="(line882)"></a>chardata <font color=Red>=</font> freetext+<a name="(line883)"></a> </pre> </html>
docs/changelog.html view
@@ -13,6 +13,16 @@ </center> <hr> +<h3>Changes in 1.19</h3>+<p>+<ul>+<li> Improved the lazy XML parsing, and fixed some space leaks+     in the XtractLazy tool.+<li> Version 1.19.2 updates the Cabal file to enable HaXml to build with both+     ghc-6.6.x and ghc-6.8.x.++</ul>+ <h3>Changes in 1.18</h3> <p> <ul>
docs/index.html view
@@ -132,10 +132,10 @@ <center><h3><a name="download">Downloads</a></h3></center> <p> <b>Development versions:</b><br>-HaXml-1.19.1, release date 2007.11.01<br>+HaXml-1.19.2, release date 2008.01.14<br> By HTTP:-<a href="http://www.cs.york.ac.uk/fp/HaXml-devel/HaXml-1.19.1.tar.gz">.tar.gz</a>,-<a href="http://www.cs.york.ac.uk/fp/HaXml-devel/HaXml-1.19.1.zip">.zip</a>.+<a href="http://www.cs.york.ac.uk/fp/HaXml-devel/HaXml-1.19.2.tar.gz">.tar.gz</a>,+<a href="http://www.cs.york.ac.uk/fp/HaXml-devel/HaXml-1.19.2.zip">.zip</a>. <br> By FTP:  <a href="ftp://ftp.cs.york.ac.uk/pub/haskell/HaXml/">@@ -149,7 +149,7 @@  <p> <b>Older versions:</b><br>-Stable version: for 1.13.2 see+Stable version: for 1.13.3 see <a href="http://haskell.org/HaXml/"> http://haskell.org/HaXml/</a> <br>@@ -202,7 +202,9 @@ <center><h3><a name="news">Recent news</a></h3></center>  <p>-Version 1.19.1 fixes a build error in 1.19.+Version 1.19.2 updates the Cabal file to enable HaXml to build with both+ghc-6.6.x and ghc-6.8.x.<br>+Version 1.19.1 fixes a build error in 1.19.<br> Version 1.19 improved the lazy XML parsing, and fixed some space leaks in the XtractLazy tool. 
src/Makefile view
@@ -1,5 +1,5 @@ SOFTWARE = HaXml-VERSION = 1.19.1+VERSION = 1.19.2  LIBSRCS = \ 	Text/XML/HaXml.hs Text/XML/HaXml/Combinators.hs Text/XML/HaXml/Lex.hs \
src/Text/XML/HaXml.hs view
@@ -32,5 +32,5 @@  -- | The version of the library. version :: String-version  = show VERSION+version  = "VERSION" 		-- expect cpp to fill in value
src/Text/XML/HaXml/ByteStringPP.hs view
@@ -20,11 +20,12 @@   ,   cp   ) where -import Prelude hiding (maybe,either,elem)+import Prelude hiding (maybe,either,elem,concat) import Maybe hiding (maybe) import Data.List (intersperse) -import Data.ByteString.Lazy hiding (pack,map,head,any,singleton)-import Data.ByteString.Lazy.Char8 (pack, singleton, join)+--import Data.ByteString.Lazy hiding (pack,map,head,any,singleton,intersperse,join)+import Data.ByteString.Lazy.Char8 (ByteString(), concat, pack, singleton, join+                                  , append, elem, empty) import Text.XML.HaXml.Types  either f g (Left x)  = f x@@ -57,7 +58,7 @@ ($$)  b1 b2  = b1 <> pack "\n" <> b2 ($+$)        = ($$) -hcat = Data.ByteString.Lazy.concat +hcat = Data.ByteString.Lazy.Char8.concat  hsep = Data.ByteString.Lazy.Char8.join (singleton ' ') vcat = Data.ByteString.Lazy.Char8.join (singleton '\n') cat  = hcat
src/Text/XML/HaXml/Parse.hs view
@@ -729,7 +729,11 @@  pereference :: XParser PEReference pereference = do-    bracket (tok TokPercent) (tok TokSemi) nmtoken+--  bracket (tok TokPercent) (tok TokSemi) nmtoken+    tok TokPercent+    p <- nmtoken+    tok TokSemi+    return p  entitydecl :: XParser EntityDecl entitydecl =