!OfHz6      !"#$%&'()*+,-./012345Safe6789:;<=NonePE4polysoup'XML forest parser with result type a. polysoupA tag predicate checks if the tag (HTML element) satisfies some properties and extracts attribute values. You can compose tag predicates using Applicative and Alternative operators: >, ?, @ etc.polysoup-True predicate which returns the tag itself. polysoup$Predicate which is always satisfied.polysoup)Check if the HTML element is an open tag.polysoup+Check if the HTML element is a closing tag.polysoup;Check if the tag is an open tag and matches the given name.polysoup=Check if the tag is a closing tag and matches the given name. polysoupA shorthand for isTagOpenName. polysoupGet name of the open tag. polysoupTest if the tag is a text node. polysoupTest if the tag is a text node. polysoupGet text content of the tag.Apolysoup}Get attribute value from the open tag or Nothing if the attribute is not present. It is an alternative for Tag.fromAttrib.polysoup>Check if the tag has the given attribute with the given value.polysoup&Get attribute value from the open tag.polysoupSGet attribute value from the open tag or Nothing, if the attribute is not present.polysoup.Many combinator which ignores parsing results.polysoup)Make a tag parser from the tag predicate.polysoup7Ignore any number of XML elements on the current level.polysoup!Ignore XML tree or text element. polysoupIgnore text element. polysoupIgnore XML tree. polysoup<Version of the ignoreAny function with a monoid result type.polysoup,Parse text element and retrieve its content.polysoupTParse XML element using the given tag predicate and ignore contents of the element.polysoupSParse a list of XML elements and collect all values retrieved with a given parser.polysoup`Find fist XML element accepted by the given parser. TODO: Change type to XmlParser s (Maybe a)?polysoupgFind first XML element accepted be the given parser and ignore the rest of elements in the collection.polysoupdCombine the tag parser with the XML parser which will be used to parse contents of the tag element.polysoupCombine the tag parser with the XML parser which will be used to parse contents of the tag element. Parsing results will be returned in a form of a pair.polysoupCombine the tag parser with the XML parser which will be used to parse contents of the tag element. Only results of the XML parser will be returned. polysoupCombine the tag parser with the XML parser which will be used to parse contents of the tag element. Only results of the tag parser will be returned.!polysoup&Infix version of the join combinators."polysoup'Infix version of the joinP combinators.#polysoup'Infix version of the joinR combinators.$polysoup'Infix version of the joinL combinators.%polysoupuCombine the tag parser with the XML parser. The XML parser will be called multiple times for tag children elements.&polysoupCombine the tag parser with the XML parser. The XML parser can depend on the value of tag parser and will be called multiple times for tag children elements.'polysoupCombine the tag parser with the XML parser. The XML parser will be called multiple times for tag children elements. Only results of XML parsing will be returned.(polysoupCombine the tag parser with the XML parser. The XML parser will be called multiple times for tag children elements. Only results of the tag parser will be returned.)polysoup Similar to 'a combinator but runs the XML parser for all descendant XML elements, not only for its children. *polysoup'Combinators with results concatenation. Similar to %= combinator but additionaly concatenates XML parser results.+polysoup Similar to '= combinator but additionaly concatenates XML parser results.,polysoup Similar to )= combinator but additionaly concatenates XML parser results.-polysoup,Parser the given string to the list of tags..polysoup4Parser the given tag list with the given XML parser./polysoup2Parser the given string with the given XML parser.0polysoup+Collect all tags of the parsed XML element.Bpolysoup#Return the underlying text element.1polysoup6Retrieve tags related to a collection of XML elements.2polysoupEscape XML string.qCDEF>G?HIJKLMNOPQRSTUVWXYZ@[\]^_`abcdefghijklmnopqrstuvwxyz{|}  !"#$%&'()*+,-./0123  !"#$&%'()*+,-./012 !2"2#2$2%2&2'2(2)2*2+2,2~      !"#$%&'()*+,-./0123456789:;<=>?@ABCABDABEFGABHABIABJABKABLAMNAMOAMPAMQAMRAMSAMTAMUAMUAMVAWXAWXAWYAZ[AB\AB]AB^AB_AB`ABaABbcdecdfcdgcdhcdicdjcdkcdlcdmcnocnpcnqcnrcstcsucsvcswcsxcsycszcs{cs|cs}cs~cscscscscscscscscs%polysoup-0.2.2-7tM18DFTjcTDaeqbOo6z2WText.XML.PolySoupPaths_polysoup TagParser XmlParserTagPredgetTagtrue isTagOpen isTagClose isTagOpenNameisTagCloseNametag tagOpenName isTagText isTagCommenttagTexthasAttrgetAttr maybeAttrmany_ satisfyPredignore ignoreAny ignoreText ignoreTag ignoreAnyMtextcutfindAll findFirst findIgnorejoinjoinPjoinRjoinL>^><^>^><^>/>/><#>#>##> parseTags tagsParseXmlparseXmlelemTagscollTags escapeXml$fAlternativeTagPred$fApplicativeTagPred$fFunctorTagPredversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamebaseGHC.Base*><*<|> fromAttribtextTag<$ Applicativepure<*>liftA2Control.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListData.Functor.ConstConstgetConst Data.Functor<$>liftA3liftA<**> Alternativeemptysomemany%polyparse-1.13-EKcHViyOzJG8eHtbiavVB2 Text.ParserCombinators.Poly.LazyreparseonFail satisfyMsgsatisfyeofnext runParserParserP"Text.ParserCombinators.Poly.ResultResultSuccessFailure Committed Text.ParserCombinators.Poly.Base manyFinally' manyFinallybracket bracketSepsepBy1sepBymany1uptoexactlyindentoneOf adjustErrBadfailBaddiscardapply Commitmentcommit adjustErroneOf' PolyParse