úÎJ‹Eä>      !"#$%&'()*+,-./0123456789:;<=portableunstablehttp://www.cs.york.ac.uk/~ndm/+This function opens a URL on the internet.  Any http:// prefix is ignored.  / openURL "www.haskell.org/haskellwiki/Haskell" Known Limitations:  Only HTTP on port 80 " Outputs the HTTP Headers as well  Does not work with all servers BIt is hoped that a more reliable version of this function will be - placed in a new HTTP library at some point! >?Open a URL (if it starts with http://) or a file otherwise Lookup an entity, using  if it starts with  # and  otherwise %Lookup a numeric entity, the leading '#'! must have already been removed. & lookupNumericEntity "65" == Just 'A' ' lookupNumericEntity "x41" == Just 'A' ( lookupNumericEntity "x4E" === Just 'N' ( lookupNumericEntity "x4e" === Just 'N' * lookupNumericEntity "Haskell" == Nothing # lookupNumericEntity "" == Nothing 4 lookupNumericEntity "89439085908539082" == Nothing Lookup a named entity, using  % lookupNamedEntity "amp" == Just '&' ( lookupNamedEntity "haskell" == Nothing 1Escape a character before writing it out to XML.  escapeXMLChar 'a' == Nothing ! escapeXMLChar '&' == Just "amp" 1A table mapping XML entity names to code points.  Does not include apos. as Internet Explorer does not know about it. 1A table mapping HTML entity names to code points An HTML element, a document is [Tag].  There is no requirement for  and   to match 'Meta: The position of a parsed element ,Meta: Mark a syntax error in the input file  A comment 3A text node, guaranteed not to be the empty string A closing tag An open tag with s in their original order. An HTML attribute id="name" generates ("id","name")  Test if a  is a   Test if a  is a    Test if a  is a   Extract the string from within   , otherwise @ Extract the string from within  , crashes if not a   HExtract all text content from tags (similar to Verbatim found in HaXml)  Test if a  is a   Extract the string from within   , otherwise @ 'Extract an attribute, crashes if not a .  Returns "" if no attribute present. Returns True if the  is  and matches the given name Returns True if the  is   and matches the given name    match an opening tag match an closing tag  match a text !match a opening tag's name literally "match a closing tag's name literally #$8Match a tag with given name, that contains an attribute -with given name, that satisfies a predicate. 'If an attribute occurs multiple times, all occurrences are checked. % Check if the  is  and matches the given name & Check if the  is   and matches the given name '()*+,- !"#$%&'()*+,- !"#$%&'()*+,- !"#$%&'()*+,-!ABCDE./0Should  # values be given before every item 1Should   values be given 2How to lookup an entity 3*The maximum length of an entities content + (Nothing for no maximum, default to 10) F45GHIJKL6MCombine adjacent text nodes. KIf two text nodes are separated only a position node, delete the position. S If two text nodes are separated only by a warning, move the warning afterwards. N If a position immediately proceeds a warning, count that into the warning. )Note: this function leaks stack on Hugs. NOPQRSTUVWX ./0123456 56./01234 ./0123/0123456portableunstablehttp://www.cs.york.ac.uk/~ndm/ 7Y8Define a class to allow String's or Tag's to be used as matches Z9&Turns all tag names to lower case and  converts DOCTYPE to upper case. :HPerforms an inexact match, the first item should be the thing to match. M If the second item is a blank string, that is considered to match anything.  For example:  - (TagText "test" ~== TagText "" ) == True - (TagText "test" ~== TagText "test") == True . (TagText "test" ~== TagText "soup") == False For . missing attributes on the right are allowed. ; Negation of : <;This function takes a list, and returns all suffixes whose % first item matches the predicate. =This function is similar to <, but splits the list 0 so no element appears in any two partitions. # ./0123456789:;<=# ./01234569<=87:;789:;<=[      !"#$%&'()*+,-./01234556789:;<=>?@ABCDEFGHIJJKKLMNOPQRSTUVWXYZ[\]^_`a tagsoup-0.4Text.HTML.DownloadText.HTML.TagSoup.EntityText.HTML.TagSoup.TypeText.HTML.TagSoup.MatchText.HTML.TagSoup.ParserText.HTML.TagSoupopenURLopenItem lookupEntitylookupNumericEntitylookupNamedEntity escapeXMLChar xmlEntities htmlEntitiesTag TagPosition TagWarning TagCommentTagTextTagCloseTagOpenColumnRow Attribute isTagOpen isTagClose isTagText maybeTagText fromTagText innerText isTagWarningmaybeTagWarning fromAttrib isTagOpenNameisTagCloseNametagOpentagClosetagText tagComment tagOpenLit tagCloseLittagOpenAttrLittagOpenAttrNameLittagOpenNameLittagCloseNameLitanyAttr anyAttrName anyAttrValue anyAttrLitanyAttrNameLitanyAttrValueLit getTagContentOptionsoptTagPosition optTagWarningoptLookupEntityoptMaxEntityLengthoptions parseTagsparseTagsOptionsIsCharTagRepcanonicalizeTags~==~/=sections partitionsclient readResponsebase Data.MaybeNothingParserValuePosition?->tagWarnupdateOnString updateOnChartagPos tagPosWarn tagPosWarnFix mergeTextsconsumebreakOn breakName breakNumber dropSpacesparseattribsattribvalueentity entityStringtoChartoTagRep