h*T'*              ! " #$%&'()0.3.0 Safe-Inferred )1=> symbol-parser&Parse a hexadecimal digit (0-9A-Fa-f).(Both upper and lower case are permitted. symbol-parserParse a decimal digit (0-9). symbol-parserParse an octal digit (0-7). symbol-parserParse a binary digit (0 or 1). Safe-Inferred )1=>X symbol-parserReverse a type level list. Safe-Inferred )1=>  symbol-parser#A defunctionalization symbol for a  . symbol-parser#A defunctionalization symbol for a . symbol-parser#A parser you can pass (heh) around.(Parsers are defined by the product of a  character parser,   end handler, and s starting state.  symbol-parser Parser error.  symbol-parserBase parser error.  symbol-parser%Inner parser error inside combinator.  symbol-parser(What a parser should do at the end of a *.  symbol-parser(The result of a single step of a parser. symbol-parser!OK, continue with the given state symbol-parser!OK, parse successful with result r symbol-parser parse error symbol-parserParse 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.  symbol-parser parser name symbol-parser error message  symbol-parsercombinator name symbol-parser inner error       Safe-Inferred )1=> , symbol-parserError while running parser.- symbol-parser%Parser error at index X, character C.. symbol-parser!Parser error on the empty string./ symbol-parserRe-construct the output from 0.1 symbol-parserInspect end parser result for the empty string, where we have no previous character or (meaningful) index.2 symbol-parserInspect end parser result.3 symbol-parser 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. symbol-parser"Run the given parser on the given *. Safe-Inferred )1=> R Safe-Inferred )1=>  Safe-Inferred )1=>  Safe-Inferred )1=>   Safe-Inferred )1=> u symbol-parser$Emit state directly on end of input.  Safe-Inferred )1=>   Safe-Inferred )1=>     Safe-Inferred )1=> 4!!  Safe-Inferred )1=> o"" Safe-Inferred )1=> ## Safe-Inferred )1=> 0$ symbol-parserUnsafe %* which doesn't check for 0. May get stuck.%$%$ Safe-Inferred )1=>' symbol-parserSequence parsers, discarding the return value of the right parser.Consider using ( instead, which is simpler and potentially faster since we parse L->R.( symbol-parserSequence parsers, discarding the return value of the left parser) symbol-parser3Sequence parsers, returning both values in a tuple.")('&%!# ")('&%!#  Safe-Inferred )1=>456789:;< !"#$%&'()*+ , - . / 0 1 2 3 4 5 6 789:;<=>?@>?ABBCDEFGHIJKLMNOPQRsymbol-parser-0.3.0-inplaceData.Type.Char.DigitsData.Type.ListData.Type.Symbol.Parser.TypesData.Type.Symbol.Parser.Run-Data.Type.Symbol.Parser.Parser.Then.VoidRight,Data.Type.Symbol.Parser.Parser.Then.VoidLeft#Data.Type.Symbol.Parser.Parser.Then!Data.Type.Symbol.Parser.Parser.OrData.Type.Symbol.Parser.Common#Data.Type.Symbol.Parser.Parser.Take&Data.Type.Symbol.Parser.Parser.Natural&Data.Type.Symbol.Parser.Parser.Literal&Data.Type.Symbol.Parser.Parser.Isolate"Data.Type.Symbol.Parser.Parser.End#Data.Type.Symbol.Parser.Parser.DropData.Type.Symbol.Parser symbol-parserData.Type.Symbol.Parser.ParserDropPaths_symbol_parser ParseHexDigitParseDecimalDigitParseOctalDigitParseBinaryDigitReverse'Reverse ParserEndSym ParserChSymParserEEBaseEIn ParserEndResultContDoneErrParserChRunThenVRThenVLThenOrErrParserLimitation EmitEndSym FailEndSym FailChSymTakeNatBaseNatHexNatDecNatOctNatBinLiteralIsolateEndDrop':<|>::<*::*>::<*>:ghc-prim GHC.TypesSymbolCharERunERun0 ReconsSymbolbase GHC.TypeLits UnconsSymbolRunEnd0RunEndRunChversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDir