h*       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxy1.0.1.0 Safe-Inferred# Safe-Inferred s parsec-classParsers functions like x or w use this type to provide a helpful context in case the parser failes. Parsec uses the synonym  for the same purpose, but in fact this type doesn't necessarily have to be a file name. It can be any name or identifier. Oftentimes, it it's useful to pass the name of the type that the parser attempted to parse.t parsec-classTypes that are instances of this class can be parsed and constructed from some character based text representation.v parsec-class A simplified  parser that consumes some kind of character stream without requiring any particular state state.w parsec-classConvenience wrapper around 8 that uses the t class to determine the desired parser for the given result type. The function reports syntax errors via z.*parseM "Natural" "987654321" :: IO Natural 987654321-parseM "Natural" "123456789" :: Maybe NaturalJust 123456789Please note that parsers run this way do not ignore any white space:&parseM "Natural" " 1" :: Maybe NaturalNothing&parseM "Natural" "1 " :: Maybe NaturalNothingx parsec-classConvenience wrapper around 9 that uses the t class to determine the desired parser for the given result type. The function reports syntax errors by {ing  . This approach is inherently impure and complicates error handling greatly. Use this function only on occasions where parser errors are fatal errors that your code cannot recover from. In almost all cases, w is the better choice."parse "Natural" "12345" :: Natural12345Like w, this function does not skip over any white space. Use Parsec's primitive 9 or 8, functions if you don't like this behavior:runParser (spaces >> parser) () "Natural" " 1 " :: Either ParseError NaturalRight 1vtuswx .*3pnZqGTKHJM4LNOSRUVXW\BE+/)[  !"#$%&'(,-01256789:;<=>?@ACDFIPQY]^_`abcdefghijklmorvtuswx .*3pnZqGTKHJM4LNOSRUVXW\BE+/)[  !"#$%&'(,-01256789:;<=>?@ACDFIPQY]^_`abcdefghijklmor      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNMOMPMQMRMSMTMUMVMWMXMYMZM[M\M]M^M_M`MaMbMcMdMefgfhfifjfkflfmfnfofpfqfrfsftfufvfwfxfyfz{|}~+parsec-class-1.0.1.0-LlToUmmOnFxFH038knHx21Text.Parsec.Class parsec-classText.Parsec.Class.Orphansparsec-3.1.16.1Text.Parsec.Pos SourcePosColumnLine SourceName sourceName sourceLine sourceColumn incSourceLineincSourceColumn setSourceName setSourceLinesetSourceColumnText.Parsec.Error ParseErrorerrorPosText.Parsec.PrimStreamunconsState stateInputstatePos stateUserReplyOkErrorConsumedEmptyParsecParsecT unknownErrorsysUnExpectError unexpected runParsecTmkPT parsecMap parserReturn parserBindmergeErrorReply parserFail parserZero parserPlus<|>labellabelstokenstry lookAheadtoken tokenPrim tokenPrimExmanyskipMany manyAccumrunPTrunP runParserT runParser parseTest getPositiongetInput setPositionsetInputgetParserStatesetParserStateupdateParserStategetStateputState modifyStatesetState updateStateText.Parsec.Combinatorchoiceoption optionMaybeoptionalbetween skipMany1many1sepBysepBy1 sepEndBy1sepEndByendBy1endBycountchainrchainlchainl1chainr1anyTokeneof notFollowedBymanyTill parserTrace parserTracedText.Parsec.CharoneOfnoneOfspacesspacenewlinecrlf endOfLinetabupperloweralphaNumletterdigithexDigitoctDigitcharanyCharsatisfystringstring' ErrorContext HasParserparser CharParserparseMparse$fHasParserNaturalbaseControl.Monad.Failfail GHC.Exceptionthrow