l'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&Safe 34579;IN    Safe 34579;IN    Safe 34579;IN ! ! ! !Safe 34579;IN'()*+,-./0123456789:;<=>?@ABCDE"F#$%&G'()*+,-./0123456789:;<=>?@AHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "#$%&'()*+,-./0123456789:;<=>?@A #$%&"'()*+,-./5601234789:;<=>?@A'()*+,-./0123456789:;<=>?@ABCDE"F#$%&G'()*+,-./0123456789:;<=>?@AHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~*+.12367Safe 34579;IN BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^BKCLEFGHIJMNOPDQRSTUVWXYZ[]\^ BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^BCKLMNOPSafe 34579;IN="#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^Safe 34579;INq_`abcdefghijklmnopqrstuvwxyz{|}~Q_`abcdefghijklmnopqrstuvwxyz{|}~Qdeftuvwxylmnopqrskghij~}|z{_`abc`_`abcd efghijklmnopqrstuvwxyz{|}~tuvwxy None 34579;<INThe  class contains the interface that the AnaParser parsers expect for the input. A minimal complete instance definition consists of ,  and .(Splits the state in a strict variant of , with % if a symbol can be split off and  if none can<Splits the state in the first symbol and the remaining state&Gets the current position in the inputReports an error5Modify the state as the result of inserting a symbol s in the input. The symbol that has already been considered as having been inserted is passed. It should normally not be added to the state.4Modify the state as the result of deleting a symbol s from the input. The symbol that has already been deleted from the input state is passed. It should normally not be deleted from the state.629  None 34579;<INQ      !"#$%&'()*+,-./012345Q      !"#$%&'()*+,-./012345Q      !"#$%&'()*+,-./012345@      !"#$%&'()*+,-./012345 None 34579;<IN 6789678967896789 Safe 34579;IN:;<=>?@ABCDEFGHIJKLMNOPQ:;<=>?@ABCDEFGHIJKLMNOBA@<=>?Q:;PCDEFGHIJKLMNO:;<=>?@ABCDEFGHIJKLMNOPQ Safe 34579;INRSTURSTURSTURSTUSafe 34579;INNone 34579;<INSafe 34579;INVWXYZ[\]^_`abcdefgVWXYZ[\]^_`abcdefgdVWXYZ[\]^_`abcefgV WXYZ[\]^_`abcdefgSafe 34579;IN hijklmnopqrs hijklmnopqrs hijklmnopqrs hijklmnopqrsSafe 34579;INNone 34579;<IN vThe v class contains the base combinators with which to write parsers. A minimal complete instance definition consists of definitions for '( *)', '( |)', w, x, y, z, {, ~, , and #. All operators available through , 'Functor", and # have the same names suffixed with :.w.Two variants of the parser for empty strings. wh parses the empty string, and fully counts as an alternative parse. It returns the value passed to it.xxN parses the empty string, but alternatives to pLow are always preferred over x parsing the empty string.y=This parser always fails, and never returns any value at all.zParses a range of symbols with an associated cost and the symbol to insert if no symbol in the range is present. Returns the actual symbol parsed.{Parses a symbol with an associated cost and the symbol to insert if the symbol to parse isn't present. Returns either the symbol parsed or the symbol inserted.|+Parses a symbol. Returns the symbol parsed.~@Get the firsts set from the parser, i.e. the symbols it expects.!Set the firsts set in the parser. returns Nothing< if the parser can not parse the empty string, and returns Just p with pK a parser that parses the empty string and returns the appropriate value. returns Nothing= if the parser can only parse the empty string, and returns Just p with p0 a parser that does not parse any empty string. The fast  instance of the v/ class. Note that this requires a functioning @ for the symbol type s, as tokens are often compared using the  function in  rather than always using  rom @. The two do need to be consistent though, that is for any two x1, x2 such that x1 == x2 you must have compare x1 x2 == EQ.tuvwxyz{|}~R24tuvwxyz{|}~&42vwxyz{|}~tutuv wxyz{|}~None 34579;IN%Checks if the parser accepts epsilon.%Parses the specified range, see also }.Example: pDig = 'a' <..> 'z'Optionally recognize parser p.If p( can be recognized, the return value of p is used. Otherwise, the value v@ is used. Note that opt is greedy, if you do not want this use ...  | pSucceed v instead. Furthermore, p( should not recognise the empty string.Parses the sequence of pa and pb, and combines them as a tuple.This can be used to parse x surrounded by l and r.Example: !pParens = pPacked pOParen pCParen,Parses using any of the parsers in the list l. Warning: l may not be an empty list.Parses any of the symbols in l.0000None 34579;<INplainly lift tokens to offside tokens scanLiftTokensToOffside :: (InputState i s p) => [i] -> OffsideInput i s p -> OffsideInput i s pDconvert tokens to offside tokens, dealing with Haskell's layout rule&None 34579;<IN    None 34579;IN6     6     6     6     None 34579;INj:;<=>?@ABCDEFGHIJKLMNOVWXYZ[\]^_`abcdefghijklmnopqrs     None 34579;<INNone 34579;IN24tuvwxyz{|}~None 34579;IN    None 34579;IN !"#$%&!"#$%&!%&$"# !"#$%& !"#$%&'(()*+,-./0123456789:;<=>?@ABCDE3FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 4JG3F                                                                    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e fghijklmnopqrstuvwxyz{|}~4      !""#$%&'()6*+0,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<SRh     //029uulib_B4Tjfv0X2v6FrzRrwbxPJQUU.Parsing.Interface UU.PPrintUU.Parsing.Derived UU.Util.UtilsUU.Util.PermTreeUU.Util.BinaryTreesUU.Pretty.Basic UU.Pretty.ExtUU.Parsing.MachineInterfaceUU.Parsing.MachineUU.Parsing.StateParserUU.Scanner.PositionUU.Scanner.GenTokenUU.Scanner.TokenUU.Scanner.ScannerUU.Parsing.OffsideUU.Scanner.GenTokenParserUU.Scanner.TokenParserUU.Parsing.CharParser UU.ParsingUU.Parsing.MergeUU.Parsing.Perms UU.PrettyUU.Scanner.GenTokenOrdUU.Scanner.GenTokenSymbolUU.Scanner.TokenShow UU.ScannerbaseGHC.Base<*> Data.Functor<$>GHC.Showshow<**><$<**><|>Idcrosssplitfst3snd3thd3BranchBrPermsChoiceaddempty<$$><$?><||><|?>$fFunctorBranch$fFunctorPerms BinSearchTreeNodeNiltab2treebtFind btLocateInbtLookupPP_ExpPPppppListPP_Doctextindent>|<>-<fill fillblock>//<joineindent>>|<<>>-<<>>//<<ejoinpar>>$<>>$<<render renderAlldispc2e element_h1 eelement_h1vcenter invisiblefparspar>^<>#<pp_es wide_textvlisthlisthlist_splist_h1hlist_h1>>^<<>>#<<>|<<>-<<>>|<>>-<vdisppp_wrap pp_quotespp_doubleQuotes pp_parens pp_brackets pp_braceshvhv_sppp_blockpp_itepp_slistpp_listpp_parens_list SimpleDocSEmptySCharSTextSLineDocPrettyprettylisttupled semiBraces encloseSep punctuatesepfillSephsepvsepcatfillCathcatvcat<><+>softline softbreaksquotesdquotesbracesparensanglesbracketslparenrparenlangleranglelbracerbracelbracketrbracketsquotedquotesemicoloncommaspacedot backslashequalsstringboolintintegerfloatdoublerational fillBreakwidthhangaligncharline linebreaknestcolumnnestinggroup renderPretty renderCompactdisplayS displayIOputDochPutDocSymbolRRangeEmptyR ExpectingESymEStrEOrESeqMessageMsgActionInsertDeleteOtherStepsOkValOkrestCostcostingStRepairmBest NoMoreStepsEither'Left'Right'Symbol deleteCost symBeforesymAfter OutputStateacceptRnextR InputState splitStateE splitState getPosition reportError insertSymbol deleteSymbolval evalStepsgetMsgsmk_range symInRangesymRSexcept usererror systemerror $fShowSymbolR $fShowAction $fShowMessage$fShowExpectingNatZeroSuccInfinite TableEntryOneDescrfirststable AnaParserparslengzeroponepToBeatParsRecPR RealAcceptA RealRecognR RealParserPpDynEpDynLmkPRunPunR parseRecbasic parsebasic libAccept libInsert libSucceedlibSeq libDollar libDollarL libDollarRlibSeqLlibSeqRlibOrlibFailstarting hasSuccessgetStart addToMessage addexpectingeorlibBestlibBest'isTrue lib_correct libCorrecttraverseanaFail noOneParserpEmpty anaSucceedanaLowanaDynEanaDynLanaOranaSeq seqZeroZero orOneOneDescr anaCostRange anaGetFirsts anaSetFirsts mapOneParsmkParsernat_lenat_minnat_add mergeTableslibMappMaplibWrappWrap lookupSym StateParserchangesetgetPosPositionfileFilenameColumnLineinitPosnoPosadvladvcadvupdPostabnewltabWidthupdPos'advc'tab'newl' $fShowPos $fPositionPosGenTokenReservedValTokenposition EnumValTokenTkVaridTkConidTkStringTkChar TkInteger8 TkInteger10 TkInteger16 TkFractionTkTextnmTkTextlnTkOpTkConOpTkErrorTokenreserved valueTokenerrTokenscanFilescanlexNest scanStringscanChargetchar getEscCharreadn getNumber isHexaDigit isOctalDigitvaluePairIsParserpSucceedpLowpFail pCostRangepCostSympSympRange getfirsts setfirstsgetzeropgetonepParserpCost getInputState handleEofparseparseIOMessageparseIOMessageN evalStepsIO evalStepsIO'$fOutputStatePair$fInputState[]sMaybe$fFunctorAnaParser$fAlternativeAnaParser$fApplicativeAnaParser$fIsParserAnaParsersacceptsepsilonmnz<..>pExceptoptasListasList1asOptpPacked pFoldr_ng pFoldr_grpFoldr pFoldr1_gr pFoldr1_ngpFoldr1 pFoldrSep_gr pFoldrSep_ng pFoldrSep pFoldr1Sep_gr pFoldr1Sep_ng pFoldr1SeppList_grpList_ngpList pList1_gr pList1_ngpList1 pListSep_gr pListSep_ngpListSep pList1Sep_gr pList1Sep_ng pList1Sep pChainr_gr pChainr_ngpChainr pChainl_gr pChainl_ngpChainlpAnypAnySympTokspLocate OffsideParserOP OffsideInputStream OffsideSymbol SemiColon CloseBrace OpenBraceOffsideTriggerTrigger_IndentGTTrigger_IndentGEscanLiftTokensToOffside scanOffsidescanOffsideWithTriggers pSeparatorpClosepOpenpOffsidepBlockpBlock1 parseOffsidepCostReserved' pReserved'pCostValToken' pValToken' pCostReserved pCostValToken pReserved pValTokenpValTokenNoPospKeyPospSpecPospKeypSpec pStringPospCharPos pInteger8Pos pInteger10Pos pInteger16Pos pFractionPos pVaridPos pConidPos pConsymPos pVarsymPos pTextnmPos pTextlnPos pIntegerPospStringpChar pInteger8 pInteger10 pInteger16 pFractionpVaridpConidpVarsympConsympTextnmpTextlnpIntegerpCommapSemipOParenpCParenpOBrackpCBrackpOCurlypCCurly pCommaPospSemiPos pOParenPos pCParenPos pOBrackPos pCBrackPos pOCurlyPos pCCurlyPospCommaspSemicspParenspBrackspCurlypParens_pCommaspBracks_pCommaspCurly_pSemicsInput CharParser parseString parseStringIO parseFile$fInputStateInputCharPos $fSymbolCharparseIOpMergedlist_of~*~~$~ succeedPermspPerms pPermsSep T_CenterListT_LiftST_DispT_Root T_FillList T_PPCArgs T_PPSArgsT_PPCT_PPST_SynPPS T_Function T_FormatsAFormatTFormatsT_ErrorT_ErrsT_FmtsT_ReqsT_MinsFormatElemheightlast_wtotal_wtxtstrT_FrameFT_PHT_PLLT_PWFormatsPPExpPPDocfirstsecondlifteliftplift empty_fmts text_fmts indent_fmtsnotFits beside_fmtstooWide above_fmts error_indent error_besides2fmt indent_fmt above_fmt beside_fmtbestallfdispfmergespacesspmergel narrow_frame narrow_ll set_var_apply beside_height cons_heightafmt_txtset_fmts_empty set_fmts_textset_fmts_indentset_fmts_besideset_fmts_aboveset_ab set_fmts_ab sem_fmts_dup set_fmts_joinset_fmts_applyset_fmts_fillblock set_error_msg sem_fmts_cdupset_error_msg'set_fmts_filllistset_fmts_render set_fmts_filt set_fmts_invvapp sem_PPS_Empty sem_PPS_Textsem_PPS_Indentsem_PPS_Beside sem_PPS_Above sem_PPS_Dup sem_PPS_Join sem_PPS_Apply sem_PPS_Fillsem_PPS_FillBlock sem_PPS_Filt sem_PPS_Invsem_PPS_Centersem_PPC_Indentsem_PPC_Beside sem_PPC_Above sem_PPC_Dup sem_PPC_Join sem_PPC_Par sem_PPC_Apply sem_PPC_Pps sem_PPC_Filtsem_PPSArgs_Nilsem_PPSArgs_Conssem_PPCArgs_Nilsem_PPCArgs_Conssem_FillList_Nilsem_FillList_Cons sem_Root_Best sem_Root_All sem_Disp_Dispsem_LiftS_Liftsem_LiftC_Liftsem_LiftC_Pairsem_CenterList_Nilsem_CenterList_Cons $fOrdFormat $fEqFormat $fOrdT_Frame $fShowPP_Doc$fPP[]$fPPChar $fPPPP_Doclhv_sp $fPPFloat$fPPIntDocsConsEmptyCharTextCatNestUnionNesting prettyListfoldenclosebesideflattenfits indentation $fShowDoc $fPrettyMaybe $fPretty(,,) $fPretty(,)$fPrettyDouble $fPrettyFloat$fPrettyInteger $fPrettyInt $fPrettyChar $fPrettyBool $fPretty() $fPrettyDoc $fPretty[] Data.EitherEitherErrorsfconst$fStateParserAnaParserst$fInputState(,)sp $fOrdGenToken $fEqGenToken$fSymbolGenToken maybeshow$fShowEnumValToken$fShowGenToken Applicative Alternativeghc-prim GHC.ClassesOrdcompare==Eqlist_algOff IndentContextCxtEnd removeSymbol addSymbol getSymboloperator operatorr$fFunctorOffsideParser$fAlternativeOffsideParser$fApplicativeOffsideParser$fIsParserOffsideParsers$fSymbolOffsideSymbol&$fInputStateOffsideInputOffsideSymbolp $fFunctorBr