úÎBÚ7Ͱ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª « ¬ ­ ® ¯ (c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisionalportable Safe-Inferred:HM° ±²  ° ±²(c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisionalportable Safe-Inferred:HM""Language independent show function³´ !"µ !"" !³´ !"µ(c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisionalportable Safe-Inferred:HM=4The most primitive token recogniser. The expression )tokenPrimEx show nextpos mbnextstate test, recognises tokens when test returns Just x (and returns the value x-). Tokens are shown in error messages using show#. The position is calculated using nextpos, and finally,  mbnextstate‡, can hold a function that updates the user state on every token recognised (nice to count tokens :-). The function is packed into a ¶ type for performance reasons.9#$%&'·¸¹º»¼(½)*+,-./01234¾5678¿ÀÁÂÃÄ9ÅÆ:;<=>?Ç@ÈÉÊABËCÌÍÎ!#$%&'()*+,-./0123456789:;<=>?@ABC!*+)(8756;C<=:>?@9AB,-./102#$%&'340#$%&'·¹¸º¼»(½)*+,-./01234¾5678¿ÀÁÂÃÄ9ÅÆ:;<=>?Ç@ÈÉÊABËCÌÍÎ*+(c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisionalportable Safe-Inferred:HMDEFGHIJKLMNOPQRSTUDEFGHIJKLMNOPQRSTUDGHIJKLMNOPQRUSEFTDEFGHIJKLMNOPQRSTU(c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisionalportable Safe-Inferred:HMVWXYZ[\]^_`abcdefghijkVWXYZ[\]^_`abcdefghijkVbYWXZ[\]a`_^decfhijkgVWXYZ[\]^_`abcdefghijk(c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisionalportable Safe-Inferred:HM lmnopqrstu lmnopqrstu qtsrmponlulmponqtsru (c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisionalportable Safe-Inferred:HMW #$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk (c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisional>non-portable (uses existentially quantified data constructors) Safe-Inferred:HM-vwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢-vwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢-•–—˜™š›œžŸ ¡vwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”¢vwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”• –—˜™š›œžŸ ¡¢(c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisionalKnon-portable (uses non-portable module Text.ParserCombinators.Parsec.Token) Safe-Inferred:HM£¤¥¦§Ï¨©•–—˜™š›œžŸ ¡£¤¥¦§¨©§¦©¨¥£¤•–—˜™š›œžŸ ¡£¤¥¦§Ï¨© (c) Daan Leijen 1999-20011BSD-style (see the file libraries/parsec/LICENSE) daan@cs.uu.nl provisional>non-portable (uses existentially quantified data constructors) Safe-Inferred:HMÐѪÒÓÔ«¬­®¯ÕÖרª«¬­®¯ª¯«¬­® ÐѪÒÓÔ«¬­®¯ÕÖר«¬­®Ù    !"#$%&'()*+,--./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯° ± ² ³ ´ µ ¶ ·¸¹º»¼½¾¿ÀÁÂÁ2ÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔ Õ Õ Ö × Ø Ù Ú Û ÜÝparsec-2.0.0.1!Text.ParserCombinators.Parsec.Pos#Text.ParserCombinators.Parsec.Error"Text.ParserCombinators.Parsec.Prim"Text.ParserCombinators.Parsec.Char(Text.ParserCombinators.Parsec.Combinator"Text.ParserCombinators.Parsec.Expr#Text.ParserCombinators.Parsec.Token&Text.ParserCombinators.Parsec.Language"Text.ParserCombinators.Parsec.PermText.ParserCombinators.Parsec SourcePosColumnLine SourceNamenewPos initialPos sourceName sourceLine sourceColumn incSourceLineincSourceColumn setSourceName setSourceLinesetSourceColumnupdatePosString updatePosChar ParseErrorMessageExpectUnExpect SysUnExpectmessageCompare messageString messageEqerrorPos errorMessageserrorIsUnknownnewErrorUnknownnewErrorMessageaddErrorMessage setErrorPossetErrorMessage mergeErrorshowErrorMessagesState stateInputstatePos stateUser GenParserParser<|>getStatesetState updateState getPositiongetInput setPositionsetInputgetParserStatesetParserState parseFromFile parseTestparse runParserpzerotrytoken tokenPrim tokenPrimExlabellabels unexpectedmanyskipManytokens CharParseroneOfnoneOfspacesspacenewlinetabupperloweralphaNumletterdigithexDigitoctDigitcharanyCharsatisfystringchoiceoptionoptionalbetween skipMany1many1sepBysepBy1 sepEndBy1sepEndByendBy1endBycountchainrchainlchainl1chainr1anyTokeneof notFollowedBymanyTill lookAhead OperatorTableOperatorPostfixPrefixInfixAssoc AssocRight AssocLeft AssocNonebuildExpressionParser TokenParser identifierreservedoperator reservedOp charLiteral stringLiteralnaturalintegerfloatnaturalOrFloatdecimal hexadecimaloctalsymbollexeme whiteSpaceparensbracesanglesbracketssquaressemicommacolondotsemiSepsemiSep1commaSep commaSep1 LanguageDef commentStart commentEnd commentLinenestedComments identStart identLetteropStartopLetter reservedNamesreservedOpNames caseSensitivemakeTokenParser haskellStyle javaStyleemptyDefhaskell haskellDefmondrian mondrianDef PermParser<||><$$><|?><$?>permuteforcePos$fShowSourcePos messageToEnum$fShowParseErrorbase Data.MaybeMaybeReplyErrorOkConsumedEmptyrunP parserReply parsecMap parsecReturn parsecBindmergeErrorReply parsecFail parsecZero parsecPlusupdateParserStatesetExpectErrorssysUnExpectError unknownError manyAccum$fMonadPlusGenParser$fMonadGenParser$fFunctorGenParser haskell98DefBranchPermtestptestnewpermaddaddoptmapPerms