E5      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ \context  encoding parser &use foreign DTD? (external entity ref & handler will be called with publicID &  systemID set to null   @Set a skipped entity handler. This is called in two situations: M1. An entity reference is encountered for which no declaration has been read  and this is not an error. C2. An internal entity reference is read, but not expanded, because  XML_SetDefaultHandler has been called. The type of the "external entity reference" callback. See the expat  documentation. The type of the "character data"! callback. The parameter is the M character data processed. This callback may be called more than once while G processing a single conceptual block of text. Return True to continue 5 parsing as normal, or False to terminate the parse. The type of the " element ended") callback. The parameter is the element L name. Return True to continue parsing as normal, or False to terminate the  parse. The type of the "element started"' callback. The first parameter is the K element name; the second are the (attribute, value) pairs. Return True to > continue parsing as normal, or False to terminate the parse. 7Specifies a location of an event within the input text Line number of the event Column number of the event +Byte index of event from start of document !The number of bytes in the event ;Parse error, consisting of message text and error location  4Encoding types available for the document encoding.   Opaque parser type.  Create a .  parse data feeds lazy ByteString data into a  . It returns . Nothing on success, or Just the parse error.  parse data feeds strict ByteString data into a  . It returns . Nothing on success, or Just the parse error. parseChunk data False feeds strict ByteString data into a  /. The end of the data is indicated by passing True for the L final parameter. It returns Nothing on success, or Just the parse error. True if last chunk context  encoding text This variant of  must either be called inside   (safest), or between  and , and , this will give you better performance than  if you process  multiple chunks inside. ! is required to be called inside  withHandlers.  Safer than using  / . /Computation where unsafeParseChunk may be used Obtain C value from Haskell .  *Attach a StartElementHandler to a Parser.  !)Attach an EndElementHandler to a Parser. !"",Attach an CharacterDataHandler to a Parser. #$%&#$%  !"#$%   !"#$ %    !"#$"%8An exception indicating an XML parse error, used by the  ..Throwing variants. &'()*+,IAn abstraction for any string type you want to use as xml text (that is, A attribute values or element text content). If you want to use a  new string type with hexpat", you must make it an instance of  ,. -./012345678;The encoding parameter, if provided, overrides the document's  encoding declaration. 9%If provided, entity references (i.e. &nbsp; and friends) will 9 be decoded into text using the supplied lookup function :'; Converts a ( to a , type. )*<JLazily parse XML to SAX events. In the event of an error, FailDocument is & the last element of the output list. Parser options Input text (a lazy ByteString) =DEPRECATED: Use < instead. JLazily parse XML to SAX events. In the event of an error, FailDocument is B the last element of the output list. Deprecated in favour of new  < Optional encoding override Input text (a lazy ByteString) >JA variant of parseSAX that gives a document location with each SAX event. Parser options Input text (a lazy ByteString) ?DEPRECATED: Use > instead. JA variant of parseSAX that gives a document location with each SAX event. Optional encoding override Input text (a lazy ByteString) @@Lazily parse XML to SAX events. In the event of an error, throw  &%.  parseThrowingA can throw an exception from pure code, which is generally a bad & way to handle errors, because Haskell's lazy evaluation means it' s hard to I predict where it will be thrown from. However, it may be acceptable in  situations where it'9s not expected during normal operation, depending on the  design of your program. Parser options input text (a lazy ByteString) ADEPRECATED: Use @ instead. @Lazily parse XML to SAX events. In the event of an error, throw  &%. Optional encoding override Input text (a lazy ByteString) BJA variant of parseSAX that gives a document location with each SAX event. ! In the event of an error, throw &%. parseLocationsThrowingA can throw an exception from pure code, which is generally a bad & way to handle errors, because Haskell's lazy evaluation means it' s hard to I predict where it will be thrown from. However, it may be acceptable in  situations where it'9s not expected during normal operation, depending on the  design of your program. Optional encoding override Input text (a lazy ByteString) CDEPRECATED: Used B instead. JA variant of parseSAX that gives a document location with each SAX event. ! In the event of an error, throw &%. Optional encoding override Input text (a lazy ByteString) , %&'()*+,-./0123456789:;<=>?@ABC,  6789'+*)(;<>B@:%&=?CA,-./012345%&&'+*)(()*+, -./012345-./0123456789789:;<=>?@ABCDEIs the given node an element? FIs the given node text? GKExtract all text content from inside a tag into a single string, including ! any text contained in children. H-Is the given node a tag with the given name? IGet the name of this node if it'-s an element, return empty string otherwise. J"Get the attributes of a node if it'+s an element, return empty list otherwise. KGet children of a node if it'+s an element, return empty list otherwise. L Get this node' s text if it',s a text node, return empty text otherwise. MModify name if it's an element, no-op otherwise. NModify attributes if it's an element, no-op otherwise. O'Modify children (non-recursively) if it's an element, no-op otherwise. P?Map all tags (both tag names and attribute names) recursively. QEMap an element non-recursively, allowing the tag type to be changed. R2Change a node from one container type to another. SKExtract all text content from inside a tag into a single string, including ! any text contained in children. T:Get the value of the attribute having the specified name. UQSet the value of the attribute with the specified name to the value, overwriting 9 the first existing attribute with that name if present. V8Delete the first attribute matching the specified name. WsetAttribute if Just, deleteAttribute if Nothing. DEFGHIJKLMNOPQRSTUVWSDEFGHIJKLMNOPQRTUVWDEFGHIJKLMNOPQREFGHIJKLMNOPQRSTUVWXBType shortcut for attributes with unqualified names where tag and  text are the same string type. YIType shortcut for a single node with unqualified tag names where tag and  text are the same string type. ZDEPRECATED: Use [UNode text] instead. AType shortcut for nodes with unqualified tag names where tag and + text are the same string type. Deprecated [DEPRECATED: Use [Node tag text] instead. Type shortcut for nodes. \Type shortcut for attributes ]4A pure Node that uses a list as its container type. ^-The tree representation of the XML document. _`abcd+eHStrictly parse XML to tree. Returns error message or valid parsed tree. Parser options !Input text (a strict ByteString) fDEPRECATED: use h instead. HStrictly parse XML to tree. Returns error message or valid parsed tree. Optional encoding override !Input text (a strict ByteString) gPA lower level function that lazily converts a SAX stream into a tree structure. hKLazily parse XML to tree. Note that forcing the XMLParseError return value G will force the entire parse. Therefore, to ensure lazy operation, don't ; check the error status until you have processed the tree. Parser options Input text (a lazy ByteString) iDEPREACTED: Use h instead. KLazily parse XML to tree. Note that forcing the XMLParseError return value G will force the entire parse. Therefore, to ensure lazy operation, don't ; check the error status until you have processed the tree. Optional encoding override Input text (a lazy ByteString) j:Lazily parse XML to tree. In the event of an error, throw &%.  parseThrowingA can throw an exception from pure code, which is generally a bad & way to handle errors, because Haskell's lazy evaluation means it' s hard to I predict where it will be thrown from. However, it may be acceptable in  situations where it'9s not expected during normal operation, depending on the  design of your program. Parser options Input text (a lazy ByteString) kDEPRECATED: Use j instead. :Lazily parse XML to tree. In the event of an error, throw &%. Optional encoding override Input text (a lazy ByteString) J %&'()*+,-./0123456789:=?ACEFHIJKMNOPSTUVWXYZ[\]^_`abcdefghijkJ^`_abc]\YXSEHFIJTKMNUVWOP6789:he  j%&'+*)(g,-./012345d[Zif=?kACXYZ[\]^`_abc_`abcdefghijk l2Type shortcut for attributes with qualified names mHType shortcut for a single node where qualified names are used for tags nDEPRECATED: Use [QNode text] instead. @Type shortcut for nodes where qualified names are used for tags oA qualified name. JQualified names have two parts, a prefix and a local part. The local part E is the name of the tag. The prefix scopes that name to a particular  group of legal tags. LThe prefix will usually be associated with a namespace URI. This is usually > achieved by using xmlns attributes to bind prefixes to URIs. pqrs.Make a new QName from a prefix and localPart. t!Make a new QName with no prefix. uv lmnopqrstuv opqrmnlstuv lmnopqrpqrstuv,-w3Type shortcut for attributes with namespaced names xIType shortcut for a single node where namespaced names are used for tags yDEPRECATED: Use [NNode text] instead. BType shortcut for nodes where namespaced names are used for tags. zA namespace-qualified tag. XNName has two components, a local part and an optional namespace. The local part is the U name of the tag. The namespace is the URI identifying collections of declared tags. \ Tags with the same local part but from different namespaces are distinct. Unqualified tags T are those with no namespace. They are in the default namespace, and all uses of an ! unqualified tag are equivalent. {|}~.Make a new NName from a prefix and localPart. !Make a new NName with no prefix. ./0123 wxyz{|}~ z{|}xyw~ wxyz{|}{|}~;7The position of a piece of content in an XML document.  The currently selected content. %Siblings on the left, closest first. &Siblings on the right, closest first. 6The contexts of the parent elements of this location. "The parent of the given location. +The top-most parent of the given location. (The left sibling of the given location. )The right sibling of the given location. 'The first child of the given location. &The last child of the given location. 7Find the next left sibling that satisfies a predicate. 8Find the next right sibling that satisfies a predicate. ,The first child that satisfies a predicate. JThe next position in a left-to-right depth-first traversal of a document: N either the first child, right sibling, or the right sibling of a parent that  has one. APerform a depth first search for a descendant that satisfies the  given predicate. 2The child with the given index (starting from 0). 4!private: computes the parent for down operations.  A cursor for the given content. ,The location of the first tree in a forest. ,Computes the tree containing this location. .Computes the forest containing this location. #Are we at the top of the document? ,Are we at the left end of the the document? )Are we at the right end of the document? &Are we at the bottom of the document? Do we have a parent? 3Get the node index inside the sequence of children Do we have children? Change the current content. Modify the current content. Modify the current content. 4Modify the current content, allowing for an effect. 4Insert content to the left of the current position. 5Insert content to the right of the current position. 4Insert content to the left of the current position. 5Insert content to the right of the current position. 5;Insert content as the first child of the current position. ;Insert content as the first child of the current position. ;Insert content as the first child of the current position. ;Insert content as the first child of the current position. ;Insert content as the first child of the current position. @Remove the content on the left of the current position, if any. ARemove the content on the right of the current position, if any. 4Insert content to the left of the current position. / The new content becomes the current position. 5Insert content to the right of the current position. / The new content becomes the current position. Remove the current element. * The new position is the one on the left. Remove the current element. + The new position is the one on the right. Remove the current element. 5 The new position is the parent of the old position. 6+private: Gets the given element of a list. L Also returns the preceding elements (reversed) and the following elements. 70private: combChildren ls x ys = reverse ls ++ [x] ++ ys 777DEPRECATED: Renamed to . Format document with <;?xml.. header - lazy variant that returns lazy ByteString. DEPRECATED: Renamed to . Format document with <??xml.. header - strict variant that returns strict ByteString. LFormat XML node with no header - lazy variant that returns lazy ByteString. PFormat XML node with no header - strict variant that returns strict ByteString. ;Flatten a tree structure into SAX events, monadic version. NFormat SAX events with no header - lazy variant that returns lazy ByteString. RFormat SAX events with no header - strict variant that returns strict ByteString. 89:;<0Make the output prettier by adding indentation. /Number of indentation spaces per nesting level KMake the output prettier by adding indentation, specifying initial indent. Initial indent (spaces) /Number of indentation spaces per nesting level 5Select only the elements from a list of XML content. 1Select only the text from a list of XML content. 1Find all immediate children with the given name. 5Filter all immediate children wrt a given predicate. FFilter all immediate children wrt a given predicate over their names. -Find an immediate child with the given name. -Find an immediate child with the given name. 8Find an immediate child with name matching a predicate. AFind the left-most occurrence of an element matching given name. DFilter the left-most occurrence of an element wrt. given predicate. DFilter the left-most occurrence of an element wrt. given predicate. .Find all non-nested occurances of an element. 8 (i.e., once we have found an element, we do not search & for more occurances among the element' s children). DFind all non-nested occurrences of an element wrt. given predicate. 8 (i.e., once we have found an element, we do not search & for more occurances among the element' s children). QFind all non-nested occurences of an element wrt a predicate over element names. 8 (i.e., once we have found an element, we do not search & for more occurances among the element' s children).  hType shortcut for a single node where namespaced names are used for tags, annotated with parse location SType shortcut for a single annotated node where namespaced names are used for tags gType shortcut for a single node where qualified names are used for tags, annotated with parse location RType shortcut for a single annotated node where qualified names are used for tags AType shortcut for a single node with unqualified tag names where F tag and text are the same string type, annotated with parse location IType shortcut for a single annotated node, annotated with parse location KType shortcut for a single annotated node with unqualified tag names where ' tag and text are the same string type 4A pure Node that uses a list as its container type. BAnnotated variant of the tree representation of the XML document. Convert an annotated tree ( Annotated module) into a non-annotated  tree (Tree) module). Needed, for example, when you format your tree to  XML, since format takes a non-annotated tree. Modify this node'$s annotation (non-recursively) if it's an element, otherwise no-op. Modify this node'3s annotation and all its children recursively if it's an element, otherwise no-op. PA lower level function that lazily converts a SAX stream into a tree structure. 0 Variant that takes annotations for start tags. KLazily parse XML to tree. Note that forcing the XMLParseError return value G will force the entire parse. Therefore, to ensure lazy operation, don't ; check the error status until you have processed the tree. Optional encoding override Input text (a lazy ByteString) DEPRECATED: Use  instead. KLazily parse XML to tree. Note that forcing the XMLParseError return value G will force the entire parse. Therefore, to ensure lazy operation, don't ; check the error status until you have processed the tree. Optional encoding override Input text (a lazy ByteString) :Lazily parse XML to tree. In the event of an error, throw &%.  parseThrowingA can throw an exception from pure code, which is generally a bad & way to handle errors, because Haskell's lazy evaluation means it' s hard to I predict where it will be thrown from. However, it may be acceptable in  situations where it'9s not expected during normal operation, depending on the  design of your program. Optional encoding override Input text (a lazy ByteString) DEPRECATED: use  instead :Lazily parse XML to tree. In the event of an error, throw &%. Optional encoding override Input text (a lazy ByteString) HStrictly parse XML to tree. Returns error message or valid parsed tree. Optional encoding override !Input text (a strict ByteString) DEPRECATED: use  instead. HStrictly parse XML to tree. Returns error message or valid parsed tree. Optional encoding override !Input text (a strict ByteString) d %&'()*+,-./0123456789:=?ACEFHIJKMNOPSTUVWX\lopqruvwz{|}~d\XSEHFIJTKMNUVWOPopqrluvz{|}w~6789:  %&'+*)(,-./012345=A?C=    !"#$%&'()*+,-../0123456789:;<=>>?@AB CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij!kl mFnopqrrstuvwxyz{||}~  z  p   _ c d e f g h i j l m F n ! k      !"#$%&'()*+ hexpat-0.13Text.XML.Expat.IOText.XML.Expat.SAXText.XML.Expat.NodeClassText.XML.Expat.TreeText.XML.Expat.QualifiedText.XML.Expat.NamespacedText.XML.Expat.CursorText.XML.Expat.FormatText.XML.Expat.ProcText.XML.Expat.AnnotatedSkippedEntityHandlerExternalEntityRefHandlerCharacterDataHandlerEndElementHandlerStartElementHandlerXMLParseLocation xmlLineNumberxmlColumnNumber xmlByteIndex xmlByteCount XMLParseError ExpatHandlersEncodingISO88591UTF16UTF8ASCIIParserencodingToString newParsersetUseForeignDTDparseparse' parseChunkparseExternalEntityReferenceunsafeParseChunkunsafeSetHandlersunsafeReleaseHandlers withHandlersgetParseLocationsetStartElementHandlersetEndElementHandlersetCharacterDataHandlersetExternalEntityRefHandlersetSkippedEntityHandlerXMLParseExceptionSAXEvent FailDocument CharacterData EndElement StartElementGenericXMLString gxNullString gxToString gxFromString gxFromChargxHeadgxTail gxBreakOngxFromCStringLengxToByteString ParserOptionsparserEncoding entityDecoderdefaultParserOptionsmkTextparseSAXparseLocationsparseSAXLocations parseThrowingparseSAXThrowingparseLocationsThrowingparseSAXLocationsThrowing NodeClass isElementisText textContentMisNamedgetName getAttributes getChildrengetText modifyNamemodifyAttributesmodifyChildren mapAllTags mapElementmapNodeContainer textContent getAttribute setAttributedeleteAttributealterAttribute UAttributesUNodeUNodesNodes AttributesNodeNodeGTextElementeName eAttributes eChildreneAttrs parseTree' saxToTree parseTreeparseTreeThrowing QAttributesQNodeQNodesQNameqnPrefix qnLocalPartmkQName mkAnQName toQualified fromQualified NAttributesNNodeNNodesNName nnNamespace nnLocalPartmkNName mkAnNNamexmlnsUrixmlns toNamespacedfromNamespacedCursorCurcurrentleftsrightsparentsPathTagtagName tagAttribsfromTagparentrootleftright firstChild lastChildfindLeft findRight findChildnextDFfindRecgetChildgetTagfromTree fromForesttoTreetoForestisRootisFirstisLastisLeafisChild getNodeIndex hasChildren setContent modifyContentmodifyContentListmodifyContentM insertLeft insertRightinsertManyLeftinsertManyRightinsertFirstChildinsertLastChildinsertManyFirstChildinsertManyLastChild removeLeft removeRight insertGoLeft insertGoRight removeGoLeft removeGoRight removeGoUp formatTreeformat formatTree'format' formatNode formatNode' xmlHeader treeToSAX formatSAX formatSAX'indentindent_ onlyElemsonlyText findChildrenfilterChildrenfilterChildrenName filterChildfilterChildName findElement filterElementfilterElementName findElementsfilterElementsfilterElementsNameNLNodeQLNodeULNodeLNodeeAnn unannotatemodifyAnnotation mapAnnotation xmlStopParserxmlErrorStringxmlGetCurrentByteCountxmlGetCurrentByteIndexxmlGetCurrentColumnNumberxmlGetCurrentLineNumberxmlGetErrorCodemkCSkippedEntityHandlerxmlExternalEntityParserCreatexmlSetSkippedEntityHandlerxmlSetExternalEntityRefHandlermkCExternalEntityRefHandler parserFree' parserFreexmlUseForeignDTDdoParseChunk'_xmlSetcharacterdatahandlerxmlSetendelementhandlerxmlSetstartelementhandlerparserCreate'_mkCCharacterDataHandlermkCEndElementHandlermkCStartElementHandlerCSkippedEntityHandlerCExternalEntityRefHandlerCCharacterDataHandlerCEndElementHandlerCStartElementHandler _parserObj_startElementHandler_endElementHandler _cdataHandler_externalEntityRefHandler_skippedEntityHandler ParserPtr withParserwithOptEncoding parserCreatewithBStringLenunStatusgetError cFromBoolghc-primGHC.BoolBool doParseChunknullCStartElementHandlerwrapStartElementHandlernullCEndElementHandlerwrapEndElementHandlernullCCharacterDataHandlerwrapCharacterDataHandlerpairwise stopParserwrapExternalEntityRefHandlerwrapSkippedEntityHandlerpeekByteStringLenbaseForeign.C.StringCStringsetEntityDecodersetEntityDecoderLoc PrefixNsMap NsPrefixMapxmlUrixmlbaseNsBindingsbasePfBindingsnodeWithNamespacesnodeWithQualifiers downParents mapChildren splitChildren combChildrenstartTagHelperputSAXpackescapees escapeText