?b      !"#$%&'()*+,-./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 V W X Y Z [ \ ] ^ _ ` a b c defghijklmnopqrstuvwxyz{|}~      Safe-Inferred Safe-Inferred          Safe-Inferred Safe-Inferred !"#$%&'()*+,-./0123456789 !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./012345678  !"#$%&,-'()*+./012345678 !"#$&%'()*+,-./0123456789 !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred 9:;<=>?@ABCDEFGHIJKLMNOPQRSTU9:;<=>?@ABCDEFGHIJKLMNOPQRSTU9B:C<=>?@ADEFG;HIJKLMNOPQRTSU 9:;<=>?@ABCDEFGHIJKLMNOPQRSTU Safe-Inferred= !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU Safe-InferredqVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~QVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Q[\]klmnopcdefghijb^_`aw{|vyzu}~xtsqrVZYXW`VZYXW[ \]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneThe 1 class contains the interface that the AnaParser F 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 input Reports an error 5Modify the state as the result of inserting a symbol s in the input. F 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. J The symbol that has already been deleted from the input state is passed. 3 It should normally not be deleted from the state. 625 NoneP      !"#$%&'P      !"#$%&'P      !"#$%&'?      !"#$%&' None ()*+()*+()*+()*+  Safe-Inferred,-./0123456789:;<=>?@A,-./0123456789:;<=>?@A432./01,-56789:;<=>?@A,-./0123456789:;<=>?@A  Safe-InferredBCDEBCDEBDCEBDCE Safe-InferredNone  Safe-InferredFGHIJKLMNOPQRSTUVWFGHIJKLMNOPQRSTUVWTFSRQPONMLKJIHGUVWF SRQPONMLKJIHGTUVW  Safe-Inferred XYZ[\]^_`abc XYZ[\]^_`abc XYZ[\]^_`abc XYZ[\]^_`abc Safe-InferredNonefThe f0 class contains the base combinators with which F to write parsers. A minimal complete instance definition consists of  definitions for '( *)', '( |)', l, m, o,  p, q, t, u, and v. g7Sequential composition. Often used in combination with  $. A The function returned by parsing the left-hand side is applied 7 to the value returned by parsing the right-hand side. A Note: Implementations of this combinator should lazily match on C and evaluate the right-hand side parser. The derived combinators / for list parsing will explode if they do not. h@Value ignoring versions of sequential composition. These ignore D either the value returned by the parser on the right-hand side or > the left-hand side, depending on the visual direction of the  combinator. j;Applies the function f to the result of p after parsing p. l.Two variants of the parser for empty strings. l parses the H empty string, and fully counts as an alternative parse. It returns the  value passed to it. mm> parses the empty string, but alternatives to pLow are always  preferred over m parsing the empty string. n@Alternative combinator. Succeeds if either of the two arguments < succeed, and returns the result of the best success parse. o>This parser always fails, and never returns any value at all. pDParses a range of symbols with an associated cost and the symbol to H insert if no symbol in the range is present. Returns the actual symbol  parsed. qDParses 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. r,Parses a symbol. Returns the symbol parsed. tAGet the firsts set from the parser, i.e. the symbols it expects. u"Set the firsts set in the parser. vv returns Nothing' if the parser can not parse the empty  string, and returns Just p with p! a parser that parses the empty + string and returns the appropriate value. ww returns Nothing( if the parser can only parse the empty  string, and returns Just p with p" a parser that does not parse any  empty string.  The fast  instance of the f 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 3. 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. defghijklmnopqrstuvwxyz{|}~R$&defghijklmnopqrstuvwxyz{|}~ &$xfghijklmnopqrstuvwyz{|}~dedefghijklmnopqrstuvwxyz{|}~None&Checks if the parser accepts epsilon. %Parses the specified range, see also s.  Example:  pDig = 'a' <..> 'z' Optionally recognize parser p. If p( can be recognized, the return value of p is used. Otherwise,  the value v6 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. ASuppose we have a parser a with two alternatives that both start D with recognizing a non-terminal p, then we will typically rewrite:   a = f <$> p <*> q  <|> g <$> p <*> r into: $ a = p <**> (f <$$> q <|> g <$$> r) 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. 1111None&plainly lift tokens to offside tokens 4 scanLiftTokensToOffside :: (InputState i s p) => [i]- -> OffsideInput i s p -> OffsideInput i s p 6convert tokens to offside tokens, dealing with Haskell's layout rule #None    None6666Nonej,-./0123456789:;<=>?@AFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcNone                None $&defghijklmnopqrstuvwxyz{|}~   NoneNone   !"#$%&'()*+,-./0123456789:*;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~+?<*;      !"#$%&'()*+,-./0123456789: ; < = > ? ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r sttuvwxyz{|}~+     -' !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0CDX       &&')  uulib-0.9.15 UU.PPrint 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.InterfaceUU.Parsing.DerivedUU.Parsing.OffsideUU.Scanner.GenTokenParserUU.Scanner.TokenParserUU.Parsing.CharParser UU.ParsingUU.Parsing.MergeUU.Parsing.Perms UU.PrettyUU.Scanner.GenTokenOrdUU.Scanner.GenTokenSymbolUU.Scanner.TokenShow UU.ScannerbaseGHC.ShowshowIdcrosssplitfst3snd3thd3BranchBrPermsChoiceaddempty<$$><$?><||><|?> BinSearchTreeNilNodetab2treebtFind 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 SimpleDocSLineSTextSCharSEmptyDocPrettyprettylisttupled semiBraces encloseSep punctuatesepfillSephsepvsepcatfillCathcatvcat<><+><$>softline softbreaksquotesdquotesbracesparensanglesbracketslparenrparenlangleranglelbracerbracelbracketrbracketsquotedquotesemicoloncommaspacedot backslashequalsstringboolintintegerfloatdoublerational fillBreakwidthhangaligncharline linebreaknestcolumnnestinggroup renderPretty renderCompactdisplayS displayIOputDochPutDocSymbolREmptyRRange ExpectingESeqEOrEStrESymMessageMsgActionOtherDeleteInsertSteps NoMoreStepsBestStRepairmCostcostingOkrestOkValEither'Right'Left'Symbol deleteCost symBeforesymAfter OutputStateacceptRnextR InputState splitStateE splitState getPosition reportError insertSymbol deleteSymbolval evalStepsgetMsgsmk_range symInRangesymRSexcept usererror systemerrorNatInfiniteSuccZero TableEntryOneDescrfirststable AnaParserparslengzeroponepToBeatParsRecPR RealAcceptA RealRecognR RealParserPpDynEpDynLmkPRunPunR parseRecbasic parsebasic libAccept libInsert libSucceedlibSeq libDollar libDollarL libDollarRlibSeqLlibSeqRlibOrlibFailstarting hasSuccessgetStart addToMessage addexpectingeorlibBestlibBest' lib_correct libCorrecttraverseanaFail noOneParserpEmpty anaSucceedanaLowanaDynEanaDynLanaOranaSeq seqZeroZero orOneOneDescr anaCostRange anaGetFirsts anaSetFirsts mapOneParsmkParsernat_lenat_minnat_add mergeTableslibMappMaplibWrappWrap lookupSym StateParserchangesetgetPosPositionfileFilenameColumnLineinitPosnoPosadvladvcadvupdPostabnewltabWidthupdPos'advc'tab'newl'GenTokenValTokenReservedposition EnumValTokenTkErrorTkConOpTkOpTkTextlnTkTextnm TkFraction TkInteger16 TkInteger10 TkInteger8TkCharTkStringTkConidTkVaridTokenreserved valueTokenerrTokenscanFilescanlexNest scanStringscanChargetchar getEscCharreadn getNumber isHexaDigit isOctalDigitvaluePairIsParser<*><**><$pSucceedpLow<|>pFail pCostRangepCostSympSympRange getfirsts setfirstsgetzeropgetonepParserpCost getInputState handleEofparseparseIOMessageparseIOMessageN evalStepsIO evalStepsIO'acceptsepsilonmnz<..>pExceptoptasListasList1asOpt<**>pPacked pFoldr_ng pFoldr_grpFoldr pFoldr1_gr pFoldr1_ngpFoldr1 pFoldrSep_gr pFoldrSep_ng pFoldrSep pFoldr1Sep_gr pFoldr1Sep_ng pFoldr1Seplist_algpList_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 OpenBrace CloseBrace SemiColonOffsideTriggerTrigger_IndentGETrigger_IndentGTscanLiftTokensToOffside 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 parseFileparseIOpMergedlist_of~*~~$~ succeedPermspPerms pPermsSep$fFunctorBranch$fFunctorPerms T_CenterListT_LiftST_DispT_Root T_FillList T_PPCArgs T_PPSArgsT_PPCT_PPST_SynPPS T_Function T_FormatsTFormatsAFormatT_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$fPPIntDocsConsNestingUnionNestCatTextCharEmpty prettyListfoldenclosebesideflattenfits indentation $fShowDoc $fPrettyMaybe $fPretty(,,) $fPretty(,)$fPrettyDouble $fPrettyFloat$fPrettyInteger $fPrettyInt $fPrettyChar $fPrettyBool $fPretty() $fPrettyDoc $fPretty[] Data.EitherEither $fShowSymbolR $fShowAction $fShowMessage$fShowExpectingErrorsfconst$fStateParserAnaParserst$fInputState(,)sp $fShowPos $fPositionPos $fOrdGenToken $fEqGenToken$fSymbolGenToken maybeshow$fShowEnumValToken$fShowGenToken$fIsParserAnaParsersghc-prim GHC.ClassesOrdcompare==Eq$fOutputStatePair$fInputState[]sMaybeOff IndentContextCxtEnd removeSymbol addSymbol getSymboloperator operatorr$fIsParserOffsideParsers$fSymbolOffsideSymbol&$fInputStateOffsideInputOffsideSymbolp$fInputStateInputCharPos $fSymbolChar $fFunctorBr