?9Jn      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm  Document type(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimentalportableSafeA G represents a tree of the parsed input. Directly after parsing, every Rule+ that was applied, gets a node in the tree. You can use   and  1 to reduce the tree into a more managable shape.Some operations on documents(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimentalScopedTypeVariablesSafeT:Filter documents according to some predicate. Similar to n in the Prelude.Squash all contents of a  into a single  Squash all contents of a ' which matches the predicate See also  Looks up nested Ns with a particular identifier. NB: Will not recurse into matching documents.  Similar to  ,   will find a g with a particular identifier. This, however, will only find immediate children and will not recurse.Predicate to checkDocument to filterReturns o1 if the predicate fails, cascades otherwise Identifier to search for to search in Identifier to search for to search in   Types used by the parser(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimentalportableSafe%A %P represents a single entry in your ABNF. It could, for example, look like this: CRLF = %x0D.0A   !"#$%&  !"#$%&%&#$!"     !"#$%&Canonicalize a list of rules(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimental non-portableSafe;Canonicalize a list of %s, leaving only a single %. p;The main, or top-level, %List of %s to canonicalizeOThe operation may fail for a number of reasons, for example, because the main % does not existqrstuvw;; p;qrstuvw#Tools to parse ABNF into a Document(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimental non-portableSafe<)Convenience function to directly parse a = Generate an  .https://hackage.haskell.org/package/attoparsec attoparsec parser <% to parse againstText to parse Return a x4 describing the error or the successfully parsed .The format of the x is as returned by  .https://hackage.haskell.org/package/attoparsec attoparsec.=>?@ABCDEF <=>?@ABCDEF <=>?@ABCDEF <=>?@ABCDEF)Documents according to an ABNF definition(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimental non-portableSafe  <=  =<Pretty printer for ABNF rules(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimentalportableSafe GHIJKLMNOPQRSGH GHSRQPONMLKJI GHIJKLMNOPQRS ABNF Parser(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimentalportableNoneUOConvencience function to directly parse a list of rules. This is equivalent to y V V(The main parser, which parses a list of %s.TUVWXYZ[\]^_`abcdefghijklmTUVWXYZ[\]^_`abcdefghijklmTUVWXYZ[\]^_`abcdefghijklmTUVWXYZ[\]^_`abcdefghijklm ABNF(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimental non-portableNone%&;UV%&VU; Top-level module(c) Martin Zeller, 2016BSD2(Martin Zeller <mz.bremerhaven@gmail.com> experimental non-portableNone %&;<=UVz     !"#$%%&&''(())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsqtuvwxyz{|}qt~#abnf-0.4.1.0-DOPaXdtiNfECBSPg2ZbJ19Text.ABNF.Document.TypesText.ABNF.Document.OperationsText.ABNF.ABNF.TypesText.ABNF.ABNF.CanonicalizerText.ABNF.Document.ParserText.ABNF.PrettyPrinterText.ABNF.ABNF.ParserText.ABNF.DocumentfilterDocumentsquashDocumentOnText.ABNF.ABNF Text.ABNFDocumentTerminal$fFunctorDocument$fShowDocument $fEqDocumentsquashDocument getContentlookupDocumentlookupDocument' DefinedAsEqualsAddsNumLitIntLitRangeLitLiteralCharLitGroupElement RuleElement' RuleElement GroupElement OptionElementLiteralElementRepeat Repetition ProductSpecSumSpecRule $fShowRepeat $fEqRepeat $fShowNumLit $fEqNumLit $fShowLiteral $fEqLiteral$fShowDefinedAs $fEqDefinedAs $fShowRule$fEqRule $fShowSumSpec $fEqSumSpec$fShowProductSpec$fEqProductSpec$fShowRepetition$fEqRepetition $fShowElement $fEqElement $fShowGroup $fEqGroupcanonicalizeRules parseDocumentgenerateParser parseRule parseSumSpec parseProdSpecparseRepetition parseElem parseLiteral parseNumLittoListoneOfPretty prettyShow$fPrettyNumLit$fPrettyLiteral $fPrettyGroup$fPrettyElement$fPrettyRepeat$fPrettyRepetition$fPrettyProductSpec$fPrettySumSpec$fPrettyDefinedAs $fPrettyRule $fPretty[] identifier parseABNFrulelistrule defined_aselementsc_wspc_nlcomment alternation concatenation repetitionrepeatelementgroupoption_literalchar_valnum_valbin_valdec_valhex_valnum_val' prose_valvcharwspbaseGHC.ListfilterGHC.BaseNothingRuleMap mergeRulesinlineRulesRuleinlineRulesSumSpecinlineRulesProdSpecinlineRulesRepetitioninlineRulesElementinlineRulesGroupString'megaparsec-5.0.0-HnmtEEIg7af7FbrK7japhdText.Megaparsec.Primparse