!vQ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(c) Herbert Valerio Riedel 2019GPL-3.0-or-laterSafe 9  B(c) Galois, Inc. 2007 (c) Herbert Valerio Riedel 2019!BSD-3-Clause AND GPL-3.0-or-laterNone24567MX+Position expressed in number of code-pointsA negative value denotes EOFXURIs resembling anyURIXXML local namesXXML qualified names X9Ordinary character data; pretty printer escapes &, < etc.XAUnescaped character data; pretty printer embeds it in <![CDATA[..X[As-is character data; pretty printer passes it along without any escaping or CDATA wrap-up.X XML CDataXXML attributesX XML elementsX XML content"X Blank names#X Blank cdata$XBlank elements%  ! "#$%!    "#$B(c) Galois, Inc. 2007 (c) Herbert Valerio Riedel 2019!BSD-3-Clause AND GPL-3.0-or-laterNone1KSXtGet the text value of an XML element. This function ignores non-text elements, and concatenates all text elements.TX4Select only the elements from a list of XML content.UX'Select only the elements from a parent.VX0Select only the text from a list of XML content.WX0Find all immediate children with the given name.XX4Filter all immediate children wrt a given predicate.YXEFilter all immediate children wrt a given predicate over their names.ZX,Find an immediate child with the given name.[X,Find an immediate child with the given name.\X7Find an immediate child with name matching a predicate.]X@Find the left-most occurrence of an element matching given name.^XCFilter the left-most occurrence of an element wrt. given predicate._XCFilter the left-most occurrence of an element wrt. given predicate.`XFind all non-nested occurances of an element. (i.e., once we have found an element, we do not search for more occurances among the element's children).aXFind all non-nested occurrences of an element wrt. given predicate. (i.e., once we have found an element, we do not search for more occurances among the element's children).bXFind all non-nested occurences of an element wrt a predicate over element names. (i.e., once we have found an element, we do not search for more occurances among the element's children).cX!Lookup the value of an attribute.dX Lookup attribute name from list.eXDLookup the first attribute whose name satisfies the given predicate.fXRLookup the value of the first attribute whose name satisfies the given predicate.STUVWXYZ[\]^_`abcdefSTUVWXYZ[\]^_`abcdefB(c) Galois, Inc. 2007 (c) Herbert Valerio Riedel 2019!BSD-3-Clause AND GPL-3.0-or-laterNone8gX:Serialize XML 1.0 document prefixed by the XML prologue "<?xml version='1.0' ?>"hXSerialize a sequence of XML  nodes XThe XML 1.0 header XLDefault pretty printing configuration. * Always use abbreviate empty tags. X#Pretty printing content using ShowSX Adds the  ?xml? header.X%Convert a text element to characters.ghhgB(c) Galois, Inc. 2007 (c) Herbert Valerio Riedel 2019!BSD-3-Clause AND GPL-3.0-or-laterNone27=?@ iXXML Lexer token.jXopening start-tag (the , field denotes whether this is an empty tag)kXclosing end-taglXcharacter entity referencemXcharacter datanX Lexer erroroXWThis type may be used to provide a custom scanning function for extracting characters.rXWThis type may be used to provide a custom scanning function for extracting characters.sXRun XML lexer over p"inmlkjopqrs !"#$%&'B(c) Galois, Inc. 2007 (c) Herbert Valerio Riedel 2019!BSD-3-Clause AND GPL-3.0-or-laterNone27ME/(X Variant of  that can encode parser )stX(parseXMLDoc, parse a XML document to an uXparseXML to a list of  chunks ijklmnopqrstu utpqorijklmnsB(c) Galois, Inc. 2008 (c) Herbert Valerio Riedel 2019!BSD-3-Clause AND GPL-3.0-or-laterNone27m,zX6The position of a piece of content in an XML document.|XThe currently selected content.}X$Siblings on the left, closest first.~X%Siblings on the right, closest first.X5The contexts of the parent elements of this location.X!The parent of the given location.X*The top-most parent of the given location.X'The left sibling of the given location.X(The right sibling of the given location.X&The first child of the given location.X%The last child of the given location.X6Find the next left sibling that satisfies a predicate.X7Find the next right sibling that satisfies a predicate.X+The first child that satisfies a predicate.XThe next position in a left-to-right depth-first traversal of a document: either the first child, right sibling, or the right sibling of a parent that has one.XRPerform a depth first search for a descendant that satisfies the given predicate.X1The child with the given index (starting from 0).*X3private: computes the parent for "down" operations.XA cursor for the given content.XA cursor for the given element.X+The location of the first tree in a forest.X+Computes the tree containing this location.X-Computes the forest containing this location.X"Are we at the top of the document?X+Are we at the left end of the the document?X(Are we at the right end of the document?X%Are we at the bottom of the document?XDo we have a parent?X2Get the node index inside the sequence of childrenXDo we have children?XChange the current content.XModify the current content.X3Modify the current content, allowing for an effect.X3Insert content to the left of the current position.X4Insert content to the right of the current position.X?Remove the content on the left of the current position, if any.X@Remove the content on the right of the current position, if any.XbInsert content to the left of the current position. The new content becomes the current position.XcInsert content to the right of the current position. The new content becomes the current position.XERemove the current element. The new position is the one on the left.XFRemove the current element. The new position is the one on the right.XPRemove the current element. The new position is the parent of the old position.+Xvprivate: Gets the given element of a list. Also returns the preceding elements (reversed) and the following elements.,X7private: combChildren ls x ys = reverse ls ++ [x] ++ ys2z{}~|2z{}~|B(c) Galois, Inc. 2007 (c) Herbert Valerio Riedel 2019!BSD-3-Clause AND GPL-3.0-or-laterNone=?tXkA smart element constructor which uses the type of its argument to determine what sort of element to make.XAdd an attribute to an element.X"Add some attributes to an element.XCreate an unqualified name.X!Create node with unqualified nameN  !"#$STUVWXYZ[\]^_`abcdefghijklmnopqrstu-        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~]     # !"#$%&'(r)*+,-./0123456789:;<=>? X-0.1.0.0-H75dv9mzIBp4jgzgZrAGznText.XML.Types Text.XML.ProcText.XML.OutputText.XML.InputText.XML.CursorText.XMLCommonText.XML.LexerPosURIunURILNameunLNameQNameqLNameqURIqPrefix CDataKind CDataText CDataVerbatimCDataRawCData cdVerbatimcdDataAttrattrKeyattrValElement'ElementelName elAttribs elContentContentElemTextCRef blank_name blank_cdata blank_element$fNFDataCDataKind $fNFDataCData $fOrdQName $fEqQName $fNFDataQName $fNFDataAttr$fNFDataElement'$fNFDataContent $fEqCDataKind$fShowCDataKind$fDataCDataKind$fGenericCDataKind $fShowCData $fDataCData$fGenericCData $fShowLName $fOrdLName $fEqLName $fDataLName$fIsStringLName $fNFDataLName$fGenericLName $fShowURI$fOrdURI$fEqURI $fDataURI $fIsStringURI $fNFDataURI $fGenericURI $fShowQName $fDataQName$fGenericQName$fEqAttr $fOrdAttr $fShowAttr $fDataAttr $fGenericAttr$fShowElement'$fDataElement'$fGenericElement'$fFunctorElement'$fFoldableElement'$fTraversableElement' $fShowContent $fDataContent$fGenericContent strContent onlyElems elChildrenonlyText findChildrenfilterChildrenfilterChildrenName findChild filterChildfilterChildName findElement filterElementfilterElementName findElementsfilterElementsfilterElementsNamefindAttr lookupAttr lookupAttrBy findAttrByserializeXMLDoc serializeXMLTokenTokStartTokEndTokCRefTokTextTokErrorScanner XmlSourceuncons customScannerscanXML parseXMLDocparseXML$fNFDataContentF$fShowContentF$fDataContentF$fGenericContentFCursorCurcurrentleftsrightsparentsPathTagtagName tagAttribsgetTagsetTagfromTagparentrootleftright firstChild lastChildfindLeft findRightnextDFfindRecgetChild fromContent fromElement fromForesttoTreetoForestisRootisFirstisLastisLeafisChild getNodeIndex hasChildren setContent modifyContentmodifyContentM insertLeft insertRight removeLeft removeRight insertGoLeft insertGoRight removeGoLeft removeGoRight removeGoUp $fNFDataTag$fNFDataCursor $fShowTag $fGenericTag $fDataTag $fShowCursor$fGenericCursor $fDataCursorNodenodeadd_attr add_attrsunqualunode$fNodeShortText $fNode(,) $fNode(,)0 $fNodeText $fNode(,)1 $fNode(,)2 $fNodeCData$fNode[] $fNode(,)3 $fNode(,)4 $fNode(,)5$fNodeElement' $fNode[]0 $fNode(,)6 $fNode(,)7 $fNode(,)8 $fNodeContent $fNode[]1 $fNode(,)9 $fNode(,)10 $fNode(,)11$fNode() $fNodeAttr $fNode[]2base Data.DataDataGHC.Base<$Data.Typeable.InternalTypeable Data.StringIsString fromString Applicativepure<*>*>liftA2<* Data.FoldableFoldableData.Traversable Traversabletraverse GHC.GenericsGenericMonoidmemptymappend GHC.MaybeMaybeNothingJustControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListData.Functor.ConstConstgetConst Data.Functor<$> Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeliftA3liftA<**> Alternativeempty<|>somemanydeepseq-1.4.4.0Control.DeepSeqdeepseqNFDatarnf text-1.2.3.1Data.Text.Internal'text-short-0.1.3-6s9Vn5x19Vb5f1556qmx0oData.Text.Short.Internal ShortText xml_headerdefaultConfigPP ppContentSshowTopElement showCDataSghc-prim GHC.TypesBoolTxtCRefBitTxtBitLStringLChareofErrtokens'specialqualNametagattribsattribattr_val dropSpaceisSpacebreak'breakn decode_attr decode_text cref_to_charnum_esccvt_charContentFFailure downParents splitChildren combChildren