h*'       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                        1.0.0 Safe-Inferred )1=>S Safe-Inferred )1=> symparsecReverse a type level list. Safe-Inferred )1=>  symparsec.Promoted parsers with singled implementations.  symparsec!A singleton for the parser state.  symparsec'A singleton for the parser return type.  symparsecThe singled parser. symparsec Promoted . symparsec Parser error.Promotable. Instantiate with  for term-level,  for type-level. symparsecBase parser error. symparsec%Inner parser error inside combinator. symparsec Promoted . symparsec(The result of a single step of a parser.Promotable. Instantiate with  for term-level,  for type-level. Note that a ! indicates the parser has not consumed the character. In the original design, it did consume it, and parsers did their own "lookahead" to handle this. The non-consuming behaviour simplifies permitting non-consuming parsers such as Take 0.  symparsec&OK, consumed, continue with state s! symparsec.OK, not consumed, parse succeeded with result r" symparsec parse error' symparsec#A defunctionalization symbol for a ).) symparsec(What a parser should do at the end of a ., symparsec5A partially-applied defunctionalization symbol for a /.- symparsec#A defunctionalization symbol for a /./ symparsecParse a  with the given state.The action is always consuming. For this reason, you may need to look ahead for the final case, so as to not consume an extra . This prevents many zero-length parsers. It's a bit weird. See  for an example.0 symparsecA singled parser.TODO consider swapping for STuple3...? this is much easier though2 symparsec symparsec0Get the singled version of the requested parser. ) with better type application ergonomics. symparsec parser name symparsec error message symparseccombinator name symparsec inner error6789:;2345601/.-,+*)('&%$# !"< = >6789:;2345601/.-,+*)('&%$# !"< = > Safe-Inferred )1=>rC symparsecHelper for writing error messages to do with parser limitations (e.g. if you tried to use a non-consuming parser like Skip 0).D symparsec>Fail with the given message if we're at the end of the symbol.E symparsec>Fail with the given message when given any character to parse.789:;2345601/.-,+*)('&%$# !"  <=>EFDGC EFDGC Safe-Inferred )1=>)H symparsecAssert end of symbol, or fail.HIHI Safe-Inferred )1=>X symparsec*Run the given parser isolated to the next n characters.)All isolated characters must be consumed.KLMNOPQRSTUVWXYZ[\]^_`XWVYUZTS[R\Q]PONM^L_K` Safe-Inferred )1=>oj symparsecParse the given .bcdefghijklmnojkihglfemdcnbo Safe-Inferred )1=>r symparsec&Parse a hexadecimal digit (0-9A-Fa-f).(Both upper and lower case are permitted.t symparsecParse a decimal digit (0-9).v symparsecParse an octal digit (0-7).x symparsecParse a binary digit (0 or 1).qrstuvwxyz{|}~{yzxw|vu}ts~rq Safe-Inferred )1=>F symparsecParse a natural in the given base, using the given digit parser. symparsec;Parse a hexadecimal (base 16) natural. Permits mixed-case ( 0-9A-Fa-f). symparsec"Parse a decimal (base 10) natural. symparsec Parse an octal (base 8) natural. symparsec Parse a binary (base 2) natural.  Safe-Inferred )1=>4 symparsec Skip forward n! characters. Fails if fewer than n characters are available'.    Safe-Inferred )1=> symparsecReturn the next n characters.    Safe-Inferred )1=> symparsecSequence two parsers, running left then right, and return both results.4  Safe-Inferred )1=> symparsecSequence two parsers, running left then right, and discard the return value of the left parser.4  Safe-Inferred )1=> symparsecSequence two parsers, running left then right, and discard the return value of the right parser.4 Safe-Inferred )1=>h HXj HXj Safe-Inferred)1=> ,  symparsec Promoted . symparsecError while running parser. symparsec%Parser error at index X, character C. symparsec!Parser error on the empty string. symparsecInspect end parser result for the empty string, where we have no previous character or (meaningful) index. symparsecInspect end parser result. symparsec Inspect character parser result.This is purposely written so that the main case is at the top, and a single equation (we parse, prepare next character and inspect character parser result at the same time). My hope is that this keeps GHC fast. symparsec"Run the given parser on the given &, emitting a type error on failure.This would be useful for :k!* runs, but it doesn't work properly with  s, printing = (TypeError ...) instead of the error message. Alas! Instead, do something like > Proxy @(RunTest ...). symparsec"Run the given parser on the given , returning a  on failure. symparsec"Run the given parser on the given , returning an  on failure. symparsec:Run the singled version of type-level parser on the given , returning an  on failure.You must provide a function for demoting the singled return type. ($ can do this for you automatically.) Safe-Inferred )1=> HXj !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIIJJKLMNNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                        symparsec-1.0.0-inplaceSymparsec.Parser.CommonSymparsec.Internal.ListSymparsec.ParserSymparsec.Parser.EndSymparsec.Parser.IsolateSymparsec.Parser.LiteralSymparsec.Parser.Natural.DigitsSymparsec.Parser.NaturalSymparsec.Parser.SkipSymparsec.Parser.TakeSymparsec.Parser.ThenSymparsec.Parser.Then.VoidLeftSymparsec.Parser.Then.VoidRight Symparsec.Run symparsecPaths_symparsecData.Type.Symbol.Parser.ParserDropSymparsec.Parsers Symparsec%defun-core-0.1-3rWaObiIe7EH66VviRU5x6 DeFun.Core@@App~>,type-level-show-0.2.1-BPiUrqpWItDL0UehUBV3r7TypeLevelShow.DocDocText:<>::$$:Reverse'Reverse SingParserPSPR singParser'SingEsingESESEBaseSEInPEEEBaseEIn SResultSInit PResultSInit SResultEnd PResultEndSResultSContSDoneSErrPResultResultContDoneErrSParserSInitSymParserSInitSym ParserSInit SParserEndSym ParserEndSym PParserEnd ParserEnd SParserChSym1 SParserChSym ParserChSym1 ParserChSym PParserChParserChSParserPParser pparserCh pparserEnd pparserS0ParserparserCh parserEndparserS0demoteSE withSingE singParser$fDemotableESE $fSingEEIn $fSingEEBase$fShowEErrParserLimitation FailEndSym FailChSym failChSym failEndSymEndsEnd$fSingParser()()PParserEIsolateRemaining EIsolateEndN EIsolateWrap IsolateChSym1 IsolateChSym IsolateEndSym IsolateEnd' IsolateEnd IsolateInnerIsolateInnerEnd IsolateCh SIsolateSIsolate'IsolatesIsolate sIsolateChSym sIsolateInnersIsolateEndSym sIsolateEnd' eIsolateWrap eIsolateEndNeIsolateRemaining$fSingParser(,)rPParser LiteralEndSym EStillParsing LiteralEnd LiteralChSym1 LiteralChSym EWrongChar LiteralCh' LiteralChLiteralsLiteral eWrongChar sLiteralChSym eStillParsingsLiteralEndSym$fSingParserSymbol()PParserParseDigitHexSym ParseDigitHexParseDigitDecSym ParseDigitDecParseDigitOctSym ParseDigitOctParseDigitBinSym ParseDigitBinSingParseDigitsingParseDigit SParseDigitsParseDigitBinSymsParseDigitOctSymsParseDigitDecSymsParseDigitHexSym $fSingParseDigitParseDigitBinSym $fSingParseDigitParseDigitOctSym $fSingParseDigitParseDigitDecSym $fSingParseDigitParseDigitHexSym NatBaseEndSymEEmpty NatBaseEnd NatBaseChSym1 NatBaseChSym EInvalidDigit NatBaseCh' NatBaseChNatBaseNatHexNatDecNatOctNatBinsNatBase eInvalidDigit sNatBaseChSymeEmptysNatBaseEndSym$fSingParserMaybeNaturalPParser SkipEndSym ESkipPastEndSkipEnd SkipChSym1 SkipChSymSkipChSkipsSkip sSkipChSym eSkipPastEnd sSkipEndSym$fSingParserNatural()PParser TakeEndSymETakeEndTakeEnd TakeChSym1 TakeChSymTakeChTakeSSTakeSTakesTake takeChSymeTakeEnd takeEndSym$fSingParser(,)SymbolPParser ThenEndSym EThenEndLThenEndL EThenEndRThenEndRThenEnd ThenChSym1 ThenChSymEThenChRThenChREThenChLThenChLThenChThen':<*>:SPThensTheneThenChLeThenChRsThenChR sThenChSym eThenEndR sThenEndR eThenEndL sThenEndSym$fSingParserEither(,)PParser ThenVLEndSym EThenVLEndL ThenVLEndL EThenVLEndR ThenVLEndR ThenVLEnd ThenVLChSym1 ThenVLChSym EThenVLChR ThenVLChR EThenVLChL ThenVLChLThenVLChThenVL':*>:SPThenVLsThenVL eThenVLChL eThenVLChR sThenVLChR sThenVLChSym eThenVLEndR sThenVLEndR eThenVLEndL sThenVLEndSym$fSingParserEitherrPParser ThenVREndSym EThenVREndL ThenVREndL EThenVREndR ThenVREndR ThenVREnd ThenVRChSym1 ThenVRChSym EThenVRChR ThenVRChR EThenVRChL ThenVRChLThenVRChThenVR':<*:SPThenVRsThenVR eThenVRChL eThenVRChR sThenVRChR sThenVRChSym eThenVREndR sThenVREndR eThenVREndL sThenVREndSymSERunSERun0PERunERunERun0PrettyE PrettyERunRunEnd0RunEndRunChMapLeftTypeErrorRunStartRunTestRun' MapLeftRenderRunrun'runTestsRun' sRunStartsRunChsRunEndsRunEnd0 demoteSERun$fDemotableERunSERun $fShowERunversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDirbaseGHC.BaseStringghc-prim GHC.TypesSymbolChar GHC.TypeError TypeError ErrorMessage'singleraeh-0.2.0-D1VD0g8QUmi2dqkrUZwMtUSingleraeh.Demotedemote