HOOG(q-++_&'!#&a;  #%''+:==AACCFFLLNNRSVVY^cchikltuwx{  !!$$&)b  !45EFWW^^llc-!!$$&'*+/26CGGPPVVXXabdemmqruuyy  &**d4 !))4499<<AEGGRRWWZ]__aadellvvyy""((++e7 $'+01469:<=@CERTUY]__abdemottvy|| "$$&&++f""%'))00CCHKRX``cdmmg(*2245LMQQTUY]ijxx  **h +  *+i3$$()2288EELMQUWW^kmmpt  #&((*+k %%++l<  !#%*,0099<<ACEEGGLLRSZ[aadeiiltvvyy  !''**m'$$''88::==EEGKSSUUabggllooqquw  !!$$&&))n@ !!$$&(1145:@GMTUWY__cgijmmrrwy||  '++o1 "$')*/2;@DEGKPPSUXYabmmqrvvzz  &p#((-.5588>>EEOUacghqqx  !q ##   ''r0  *+2278EEHKNNPPSVY]abghkktt||""(+s! ##)   ""))t; $*,,..0025@ACCGGIMPUY[__abejmuyy}  !#&*+u( !##&(CCEEGKRRWXZ]vv   '**v NNkk (*w MMjjyy  ++x $$@@OQTTcdy &'45QQyy     !%&)*6:5-1()5->R5All15Any5 BlockReason5Bool4CChar4CClocki4CDev74CDouble3CFloat3CIno=3CInt2CIntMax2CIntPtre2CLDouble 2CLLong1CLong|1CMode41COff0CPid0CPtrdiff\0CSChar0CShort/ CSigAtomic/CSizeva=w5;z:i:g:p:l:i:s:t:ZipListz;a;g;m;o;d$;e+;Mode#W=e;=o<rK;a;iW;t^;ee;ml;os;dz;e;IOModep;aQ<m#<p;e;d;a;m;o;n;a;d; WrappedMonadr;r;o<w < WrappedArrowo*<n1<a8<d?< WrappedMonadrX<r_<of<wm< WrappedArrowr<d<Word#,=1=3<6<8<p<t<r<WordPtrWord84<Word642=Word326=Word16Word#aB=kI=WeakWorda=e=rr=iy=g=h=t=c=u=r=l=y=Tokenr=s=i=o=n=Versionr=i>s>y >m>Tokend#>Tokena=@n?p>sD>eK>rR>iY>n`>tg>en>ru>r|>u>p>t>AsyncExceptionp>e>r>c>a>s>e>l>e>t>t>e>r?GeneralCategorydm?iH?q&?u-?a4?l;?HsQNameqO?uV?e]?Uniqueet?f?r?f?s?c?o?r?e?Tokenl?o?w?ArithExceptioni?n?e?d?e?l@e @m@e@n"@t)@ArrayExceptionrD@rK@aR@yY@UArrayeDhBi`BoHnkHpJHtQHrXH StablePtrarHmyHeH StableNamecHlHoHcHSrcLocaHeHcHiHaHlHHsQNamecHeIiInIgIcIo$Im+Ib2Ii9In@IiGInNIgUIm\IacIrjIkqIGeneralCategoryGeneralCategorymIeIeIxIcIeIpItIiIoInI SomeExceptiono@Ju JtJdJo Jw'Jn.J ConsoleEventwGJShowsZJShowSeJmuJi|JcJoJlJoJnJTokenkJfJmJoJdJeJSeekModerJoJmJeKnKdKSeekModem#Kp*Kl1Ke8Kv?KaFKrMK SampleVaraOeILiqKgxKhKtKEithera"LcKpKsKqKuKaKrKeKTokenaKrKeKnKTokenuLr LlLyLTokenr)Lr0Lo7Lw>LTokenaVNcsMl&MqLtdLukLrrLnyLiLnLoLrLdLeLrLArgOrdera MuLiLrLeLoLrLdLeLrLArgOrderrMgMArgDescra-Mt4Mi;MvBMeIMsPMeWMe^MkeMSeekModecNsMuMpMdMeMrMrMoMrM RecUpdErroreMlMeMrMrMoMrM RecSelErroroNnNe%Nr,Nr3No:NrAN RecConErrordNlbNRealfNwzNoNrNlNdN RealWorldlNrNaNcNRealFracoNaNtN RealFloatReadmOprOscOwOr&Oi-Ot4Oe;OmBOoIOdPOeWOIOModeReadSReadPrOeOcOReadPrecoOdOeOIOModetOLexemeiOoORationOaPlPRationalcPsPuuPv0Pa7Pr>PicPsJPyQPmXPTokendjPTokena|PlPHsQNameePmPQSemnPQSemNoPnPiPsPyPmPTokendPTokenP aMUeUiUoTpPSrQskQtWQu=QnDQcKQLexemer^QPtrtrQryQ TextDetailseRiJRoQcQdQuQcQtQProducteQsQsQgRiQdQ ProcessIDrRoRuRp$Ri+Rd2RProcessGroupIDnRvVRa]RtdRekRurRsyReRGeneralCategorytRfRaRtRyRpReR PrintfTyperRgR PrintfArgcBSf(St StSySPrettyi/Sx6SFixityPrechTi~TlITn ToSspSewSm~SiScSoSlSoSnSPPLayoutfSfSsSiSdSeSrSuSlSeSPPLayoutoTlTaTy&To-Tu4Tt;TPPLayoutaPTyWTo^TueTtlTPPLayoutnTlTiTnTeTPPLayoutsTmToTdTeTPPHsModeoTlTPoolcUoUPicor#Um*Uu1Ut8Ue?UArgOrdergWrUt^UteUelUrsUnzUmUaUtUcUhUfUaUiUlUPatternMatchFailaVsUeUftVmLVo4VrUeVs VuVlVtV ParseResultk;V ParseResultoSVdZVeaV ParseModea{ViVlVeVdV ParseResultgVrVaVpVhVsVeVpVaVrVaVtVoWr WGeneralCategorye&Wm-Wo4Wd;WeBWModenZpYrXtWvgWenWruWf|WlWoWwWArithExceptionhWeWrWlXncXpXsWyWmWbWoWlWGeneralCategoryuXnXcXt$Xu+Xa2Xt9Xi@XoGXnNXGeneralCategoryujXmqXbxXeXrXGeneralCategoryeXtXtXeXrXGeneralCategorydXOrdeXrXiXnYgYOrderingeYt&YaYdSYi7Yo>YnEYOptDescreZYsaYchYroYOptDescrrYgYArgDescrnYpYuYnYcYtYuYaYtYiYoYnYGeneralCategorye ZlZiZn"Ze)Zm0Zo7Zd>ZeEZModee\otZu`ZmgZNuma\b{\lH\m[n&[r [tZaZhZiZnZgZMaybesZsZiZgZnZeZdZGeneralCategorye[p[DataReps[t2[e9[r@[mG[iN[nU[a\[tc[ij[oq[nx[NonTerminationp[a[c[i[n[g[m[a[r[k[GeneralCategorye[t[h\o\d\e\r\r#\o*\r1\ NoMethodErroraO\yV\o]\ud\tk\ LexContextu\f\f\e\r\i\n\g\ BufferModer\g\ArgDescrs\t\e\d\a]t ]o]m]i]c%]a,]l3]l:]yA]NestedAtomicallya`i_oi^u]vv]a}]r]MVar#]MVar#t]a]b]l]e]a/^b]y]t]e]a]r]r]a^y ^#^MutableByteArray#r6^r=^aD^yK^#R^ MutableArray#d_nu^a^o^i^d^Monoidd^Monadf^p^l^u^s^ MonadPlusi^x^MonadFixe_i6_u_l_e&_Modulef=_iD_eK_rR_l_s^_ye_ml_bs_oz_l_GeneralCategorye_t_t_e_r_GeneralCategoryModec`n_u_s_Tokenr`o`Micror`tL`y/`b6`e=`MaybehS`sZ`ya`mh`bo`ov`l}`GeneralCategoryr`a`y`MArrayamdebiao`gasGaw`e`r`c`a`saealaeatat$ae+ar2aGeneralCategorysNaoUaf\apcarjaeqacxaiasaiaoanaArithExceptionoafafa ConsoleEventmbnaeabBbsaeapba brbabtbo&br-bGeneralCategoryuIbfPbfWbe^brebilbnsbgzb BufferModeibtbLimitfct+cxbLexcbebmbebLexemeobnbtce cxctc LexContextt2ce9cr@cnGcuNcmUcb\ceccrjcGeneralCategorytcEitheraFdcdmdpcscqcucacrcecTokenacrcecncTokenodddedModeu&dr-dl4dy;dTokenrMdrTdo[dwbdTokensdyydodudtd LexContexttdLastlhwd_dahchd hegfgh[giflfmUfn fofqesetmeu?ewehee&er-ee4eTokennFesMeaTef[eebeTokenheyyepeeeTokeneeneTokenaefeeeTokenueaeleiefeieeedfTokenffTokene'fw.ft5fygtEgTokenTokenibgdigipgnwgg~gTokenogrgegigggngTokenlgxgpgogrgtgTokensgegTokenahe&hohTokenf`hr2hi9hv@hiGhnNhgUhTokenaghunhluht|hTokenthahTokenahlhahshshTokenshehTokenshTokenehiis iliiiKleisliu2is9it@iMaybeandqngHnnkoipisixuiIxcisitiriiinigiIsStringhiairiIsCharriIPrIOakejmjrjtZju%ja,jr3jr:jaAjyHjIOUArrayoajdhjiojfvjf}jajrjrjajyj IOToDiffArrayejfjIORefojdjejIOModerKkxkc kekpkt!ki(ko/kn6k IOExceptionrRkoYkr`kIOErrortvky}kpkek IOErrorTyperkrkakykIOArraydmfmiOmtkInt #Am1+m3m6l8lcletlpVlr;lt"lo)lk0lTokeneBlpIlDataRept]lrdlIntPtrg{lelrlalllIntegralrlIntegerolnlsltlrl ConstrRepInt84mInt642mInt3262mInt16Int#tVmi]madmlkmqrmuymomtmemGeneralCategoryimxmFixityemn1nxmomumtmomfmbmonunnndnsnArrayExceptiont8nIndentnOnoVnr]nednHandlerexnnntnLexemernrnanynIArraya͆espsnabcdef~g}izlZymxn`xoKxpuqtr~ssHrtpuovvow:oiAolHodOocVoa]ordodkoHsExpa}oroHsExpnooopoHsOpaomoeoHsCNamenobpg:pi psoaofoeoHsSafetytpcpo!pn(p HsSpecialConuApaHprOpdVpe]pddpaprpphwps~pHsRhslptp HsGuardedAltsapnpgpepdptpyp HsBangTypeurypaqcqfqpYqt1qvqaqr%qHsTypeu8qp?qlFqeMqHsTypee`qHsTypedqszqiqgqHsDecleqcqlqHsDecluqnqHsTypeoqnqHsTypepqpqHsTypep rlrerHsExpc(ro/rn6r HsSpecialConaDsprtry^rmerblrosrlzrHsNamemrrrirnrgr HsLiteralprrrirmr HsLiteraltrHsStmtercsi saslsc so'sn.s HsSpecialConfKseRsHsSafetytesylsHsSafetyeshsisgshstsssescstsisosnsHsExpssHsRhscsc`td|pE|HsExppW|o^|re|tl|d|sx|p|e|c| HsImportSpece|c|l| HsImportDeclHsExpe|n|t|HsNameb}s} HsImportSpece}u&}a-}r4}d;}eB}dI}a}rU}h\}sc} HsGuardedRhss~}HsRhsl}t} HsGuardedAlts} HsGuardedAltsn}e}r}a}t}o}r}HsStmti_lo~ru~u!~n(~bT~c4~o;~nB~ HsSpecialConi[~nb~di~HsDecla|~c~ HsLiteralr~e~i~g~n~e~i~m~p~o~r~t~HsDeclx~p~or tHsDeclo&a-t4p;rBiImP HsLiteraleflmdtu{pdate HsFieldUpdateamzntvjxpHsExpo*type sigHsExpr1t8s?pFeMcT HsExportSpecaqrx HsExportSpechingaـwithǀ HsExportSpecll HsExportSpecumfrom#HsExpt3hJo?HsExpeQnXHsExpthooHsExpodulecontenǁt΁sՁ HsExportSpecbs HsExportSpecaςehoHsExpu(b/l6e=pDrKiRmY HsLiteralcfta{ultdeclHsDecllHsDecltւa݂declHsDeclahClno n'HsExpdnosstKeRxYt` HsContext HsSpecialConpHsOpameHsCNameecƃl̓ HsConDeclameHsCNamea ssd"e)c0l7HsDeclaJrQ HsLiteralperlismz HsLiteralseHsExpangetÄyʄpфe؄ HsBangTypedty HsBangTypel ps"pޅs.oJt:HsAsstcQHsAssoclnrqixghtHsAssoconeHsAssoceÅfʅtхHsAssocatHsExppHsExptHsAltr&i-n4t;fBtIyPpWe^ HPrintfTypeazpoverflowAsyncExceptionnqsنh;resolution$ HasResolutiontBaIbPlWe^ HashTabledxleHandleprHandlerosnƇ HandlePosnemqt GenericT' GenericQ' GenericM'n$e+r2a(i>cEGeneric'bmڈqrttGenericT' GenericT'GenericRGenericQ'Lj GenericQ'GenericM' GenericM'GenericBGeneric'l/c6a=tDeKgRoYr`ygGeneralCategorydiloCruncщptrFunPtrt؉o߉rFunctoract ion!a(l/ FractionallrOe~m[abtiGeneralCategoryignptr ForeignPtrdÊaʊbъl؊eߊFoldableoatFloatc}i]rBt)o0k7TokeneIpPDataRepndgkFloatingonstr ConstrRepln"rxŋeiыt؋yߋFixitydFixeds tFirsta)l0imq<uCoJtQeXGeneralCategoryzte{reptr FinalizerPtrnvpnjtΌrՌFinalizerEnvPtreimio2p ath FilePathf9f@sGeNtU FileOffsetopdwe~FileModedFileIDFd 1)6in[oIpqԏruxcitcŽe{fCs ucc e's.s5ExitCodeaJiQlXu_rfemExitCodexception ExceptionoɎdЎe׎ExitCodee1lama tion&Tokenp8t?iFoMnT Exception Exceptionr|norcall ErrorCalloŏErrnoEqualsTokeno cht!i(m/e6 EpochTimefPTokencdulmsEnumoEndolosingmǐaΐrՐkܐGeneralCategoryther EitherE620E12aeiΒouݑy]ndaepxwc~eption Exceptionmiőc̑DynamicalDualctu$wnDownb+l2e9DoubleazcSoZlaohnoTokenrrowTokendotTokenDocf-vڒidebyze roArithExceptionf4awu@aGrNrUa\yc DiffUArrayr~ray DiffArrayacVf-nviȓcϓe֓iݓdDeviceIDorm alArithExceptiona4u;lBtIHandleri]mdaklrnyumberGeneralCategorydloƔc͔kԔDeadlocksWtaDatar8type&DataTypee?pFDataReph^peulnscztuationGeneralCategoryacnd fh?iȝjlSm/oٙpsEt!uw cvst r'i.n5g<CWStringlSeZna CWStringLenh}arCWcharcilErshoĖr˖tҖCUShortrencys ymb"o)l0GeneralCategorylooQnXg_CULongovn}gCULLongntCUIntmܗpt×rʗCUIntPtraxCUIntMaxha rCUChari(m/e6CTimec^h9i٘st`rginnug|CStringlen CStringLeniz˜eɘCSsizegzeCSizeat omic% CSigAtomico@rGtNCShorthealrsCSChariętrdiffCPtrdiffd˙CPidflmninsFtr olGeneralCategoryc4 ConsoleEventotiyWm^TokenConstr}Constrrep ConstrRepleeȚvϚe֚nݚt ConsoleEventectorp$u+n2c9t@uGaNtUi\ocnjGeneralCategorydndexConIndexTokenmpɛlЛeכxޛComplexaTokenonTokenf!COffo6d=eDCModed_l:odcnsue| ConsoleEventpunctuatĜi˜oҜnٜGeneralCategorygCLongk tic k' ClockTickoAnHgOCLLongofumbtl{eCLDoublempbufCJmpBufnϝo1t۝CIntmptrCIntPtrax CIntMaxCInoa\rK TextDetailsnrhChara{cterTokenChanilޞpoȞsϞCFposoatCFloatl eCFileeYo,u3b:lAeHCDoublev`CDevhlzockCClockarCChartßceϟg֟oݟryCategoryhHandleraMi1l;orƠuzy6t=eDcKoRuYn`tg ByteCountffermode BufferModee͠aԠk۠ ConsoleEvento&undedBoundedl-BooloBcIkPberaehaosvo}n BlockReasondionb6defJm$osءtߡm BlockReasonthe r BlockReasonv+a2r9 BlockReasonoQrXe_ifgmntc{all BlockReasonxceptĢiˢoҢn٢ BlockReasoneadmv arBlockedOnDeadMVarl=aDcKkRhYo`lgen BlockReasonndefinitelţỵBlockedIndefinitelyuffer ing! BufferModet8s?BitscdrYTokenkkqswl~ashTokenuoteTokenbdl)nprإstTokenskyn cex"c)e0p7t>iEoLnSAsyncExceptionerrytionfailedAssertionFailedgira9owArrowa cѦlmypQz)e0r7o> ArrowZerolXu_sf ArrowPlusonad ArrowMonadoop ArrowLoophئoߦice ArrowChoicepply% ArrowApplyy@Array#eYx`cgenput|ionArrayExceptionArray#thǧeΧxէcܧeptionArithExceptiondXo*r1d8e?rFArgOrdere_sfcmrtArgDescrpeߨlicativèeʨ Applicativendmode IOModeyAnyglt:eArHnOaVt]idvker AlternativeAllcrepDataRepo©nɩsЩtשrީ ConstrRepdr#Addr#sol&u-t4e;sBeIePkWSeekMode:}]q[]:][::])() tH._&P&Boolp?HsAltHsAssoc HsBangTypeaHsCNameE HsConDeclHsDecl ~}zyxw)HsExpdZTQFB:9765431+&$ HsExportSpecnVP HsFieldUpdateU HsGuardedAlt HsGuardedAlts8' HsGuardedRhs HsImportDecl HsImportSpecGD HsLiteralk-HsMatchHsModuleHsNameHsOpHHsPat SRNMJIC*  HsPatFieldWHsQNameoe]K HsQOpX HsQualTypeHsRhs;(HsSafety  HsSpecialConf HsStmt<%HsTypegbYL, Intq LexContextiModule@ PPHsModeh PPLayoutr ParseMode!SrcLocATokenl."()aLexm()rLexcBoolaLexOrderingaLexvaLexaLexChar[]aLexChar[]rLex ()PChar[]{usHsDeclPHsExpP2/HsModule ParseResultvHsNamePOHsPatP0IntPjModuleMaybe>SrcLocPaPa ParseResult|t HsImportSpec[]Bool(,)Maybe=HsType[]HsName(,)P^HsType[]HsQName(,)P_HsDecl[]P#HsType[]HsQName(,)[]P` HsName[]HsNameHsType[]HsQName(,)[](,,)P[ HsType[]HsQNameHsType[]HsQName(,)[](,,)P\ c?V@BoolCharaPTokenBoolh hhChar.-HsAssoc HsConDeclyHsExpZUF<;::9877766543210/$ HsGuardedAlts HsImportDeclA@?>= HsLiteralCBHsName~}yxwoLKJIHGFEDHsPatWNNMJHsQName zYXWVUTSRQPONHsQOpZ:9 HsQualType\[HsRhsHsSafety~ HsSpecialCon]HsType ~}bba`_^IntihhhhhhgfedcIntegerlkj LexContextmModuleonPPHsModesrqpPPLayouth ParseModevutSrcLoc~}|{zyxwStyleasvaLexChar[]~~}}|vt"! HsAlt[]1 HsBangType[]HsCName[]PD HsConDecl[]wHsDecl[] zx%$#HsExp[]& HsFieldUpdate[]Q32 HsGuardedAlt[]' HsGuardedRhs[]( HsImportDecl[]HsMatch[])HsName[]yxwHsOp[]HsPat[]R* HsPatField[]SHsQName[]ywHsStmt[]4+HsType[]z,IntegerRatioModuleMaybeaPt HsImportSpec[]Bool(,)MaybeHsType[]HsQName(,)[]zyxwChar[]Char[](,) HsExportSpec[]Maybe HsBangTypeHsName[](,)[]ZOD2#rgPAfH=+ ygQ/  zodYB/  wdUJ?4) w^I>3! |qf[P= xcQ;) }rcXM2#StringPrettyaString  PrettyaStringo-/4cEZierLz_String^StringString.Strings HsContext HsContextA HsContextJ HsContextStringString'StringPrettyaString &CIndent*Ptu Indent8796%< HsContextHsAsst,+ HsContext HsContextOUW\CV?Gkwy6Fxq{Sm5RTQv>?@Majg~}| !3@AStringStringString1StringlStringStringStringString HsContext-RationalN]`Rational &String !String5 '()*+,"#$%(4:B#$".=Hb/<>;89:2 0String1)2+zZ<V8b@*x^B*~`8rX6hH& fF.jB~Z6 ~`D"jP<xZ>jR2nH4pN0~\@&nL6^B(dF,~hJ0fN6 x^@ ~`>&z`B&jX8yY/uQCuU7w[?wCw_E%wYA' qQ3[;iG% whereindent5 whereIndentC vrightcurlyW VRightCurlyBvarsymtVarSymAvaridVarId@unqualUnQual?unit_tycon_nameunit_tycon_name> unit_tycon unit_tycon= unit_con_name  unit_con_name<unit_con,unit_con; underscoreJ Underscore:tuple_tycon_nameptuple_tycon_name9 tuple_tycon tuple_tycon8tuple_con_nametuple_con_name7 tuple_con tuple_con6tokenToken5tildeTilde4syntax&Syntax stringtokA StringTok3 starttoken` startToken2srcloc|SrcLoc01srclinesrcLine/ srcfilename srcFilename. srccolumn srcColumn- splittyconapp splitTyConApp,specialSpecial+spacing3spacing*setbolLsetBOL) semicolong SemiColon(runparserwithmoderunParserWithMode' runparser runParser& rightsquare RightSquare% rightparen RightParen$ rightcurly RightCurly# rightarrow4 RightArrow"qvarsymQQVarSym!qvaridjQVarId qualQualqconsymQConSymqconidQConIdpushcurrentcontextpushCurrentContext pushcontextl pushContextLprettyprintwithmode)prettyPrintWithModeprettyprintstylemode\prettyPrintStyleMode prettyprint prettyPrintprettyPretty prelude_mod prelude_mod ppsemicolon PPSemiColon ppoffsiderule  PPOffsideRule ppnolayout. PPNoLayoutpplayoutLPPLayoutppinlinehPPInLinepphsmodePPHsMode popcontextl popContextL popcontext popContext  parseutils ParseUtils parseresult  ParseResult  parser*ParserparseokCParseOk   parsemonadd ParseMonadparsemodulewithmodeparseModuleWithMode parsemodule parseModule parsemode ParseMode parsefilename parseFilename parsefailed- ParseFailedpIP onsideindentb onsideIndentnolayoutNoLayoutmoduleModulemkrecconstrorupdatemkRecConstrOrUpdateminusMinus main_name main_namemain_mod main_modlist_tycon_nameClist_tycon_name list_tyconh list_tyconlist_cons_namelist_cons_name linepragmas linePragmaslexwhilelexWhilelextablexTab lexnewline lexNewlinelexer!Lexerlexer lexcontextG LexContextlex`Lex letindentx letIndent leftsquare LeftSquare leftparen LeftParen leftcurly LeftCurly leftarrow LeftArrowlayout Layoutlayoutkw_where3KW_Where kw_unsafeP KW_Unsafekw_typelKW_Typekw_thenKW_Thenkw_safeKW_Safe kw_qualified KW_Qualifiedkw_ofKW_Of kw_newtype KW_NewType kw_module KW_Modulekw_let1KW_Let kw_instanceN KW_Instance kw_infixrn KW_InfixR kw_infixl KW_InfixLkw_infixKW_Infixkw_inKW_In kw_import KW_Importkw_ifKW_If kw_hiding KW_Hiding kw_foreign/ KW_Foreign kw_exportN KW_Exportkw_elsejKW_Elsekw_doKW_Do kw_deriving KW_Deriving kw_default KW_Defaultkw_dataKW_Datakw_classKW_Classkw_caseKW_Casekw_as*KW_AsinttokAIntTokindentYIndent importspecsv importSpecsimportqualifiedimportQualified importmodule importModule importloc importLocimportasimportAs hswildcard HsWildCardhsvarop<HsVarOp hsvarnameX HsVarNamehsvarrHsVarhsunsafeHsUnsafe hsunitcon HsUnitConhsunguardedrhsHsUnGuardedRhshsunguardedaltHsUnGuardedAlt hsunbangedty HsUnBangedTyhstyvar8HsTyVar hstytupleT HsTyTuple hstypesigr HsTypeSig hstypedecl HsTypeDeclhstypeHsTypehstyfunHsTyFunhstyconHsTyConhstyappHsTyApp hstuplecon HsTupleConhstuple4HsTuplehssymbolOHsSymbol hsstringprimo HsStringPrimhsstringHsStringhsstmtHsStmt hsspecialcon HsSpecialConhssafetyHsSafetyhssafeHsSafehsrightsection!HsRightSectionhsrhs@HsRhs hsrecupdate\ HsRecUpdate hsrecdecl| HsRecDecl hsrecconstr HsRecConstrhsqvaropHsQVarOp hsqualtype HsQualType hsqualifier HsQualifierhsqopHsQOphsqname2HsQNamehsqconopMHsQConOp hspwildcardl HsPWildCardhspvarHsPVarhsptupleHsPTuplehsprecHsPRechspparenHsPParenhspnegHsPNeghsplit HsPLithsplist"HsPList hspirrpat> HsPIrrPat hspinfixapp^ HsPInfixApp hspfieldpat HsPFieldPat hspatfield HsPatField hspatbind HsPatBindhspatHsPathspaspatHsPAsPathsparenHsParenhspapp'HsPApphsop=HsOp hsnewtypedeclZ HsNewTypeDeclhsnegapp{HsNegApphsnameHsNamehsmoduleHsModulehsmatchHsMatch hsliteral HsLiteralhslitHsLit hslistcon" HsListCon hslistcompA HsListComphslist]HsList~ hsletstmtx HsLetStmt}hsletHsLet| hsleftsection HsLeftSection{hslambdaHsLambdazhsivarHsIVary hsithingwith  HsIThingWithx hsithingall, HsIThingAllwhsirrpatKHsIrrPatv hsintprimh HsIntPrimuhsintHsIntt hsinstdecl HsInstDecls hsinfixdecl HsInfixDeclr hsinfixapp HsInfixAppq hsimportspec HsImportSpecp hsimportdecl% HsImportDeclnohsifEHsIfmhsident\HsIdentlhsiabsuHsIAbsk hsguardedrhss HsGuardedRhssj hsguardedrhs HsGuardedRhshi hsguardedalts HsGuardedAltsfg hsguardedalt  HsGuardedAltde hsgenerator2 HsGeneratorchsfunconQHsFunConb hsfunbindn HsFunBindahsfracHsFrac`hsforeignimportHsForeignImport_hsforeignexportHsForeignExport^ hsfloatprim HsFloatPrim] hsfieldupdate HsFieldUpdate[\ hsexptypesigG HsExpTypeSigZ hsexportspeck HsExportSpecYhsexpHsExpXhsevarHsEVarW hsethingwith HsEThingWithV hsethingall HsEThingAllU hsenumfromto HsEnumFromToThsenumfromthento+HsEnumFromThenToShsenumfromthenUHsEnumFromThenR hsenumfromy HsEnumFromQhsemodulecontentsHsEModuleContentsPhseabsHsEAbsO hsdoubleprim HsDoublePrimNhsdoHsDoM hsdefaultdecl HsDefaultDeclLhsdecl9HsDeclK hsdatadeclU HsDataDeclJ hscontextt HsContextIhsconsHsConsHhsconopHsConOpG hsconname HsConNameF hscondecl HsConDeclDEhsconHsConChscnameHsCNameB hsclassdecl6 HsClassDeclA hscharprimW HsCharPrim@hscharsHsChar?hscaseHsCase> hsbangtype HsBangType= hsbangedty HsBangedTy<hsasstHsAsst; hsassocright HsAssocRight: hsassocnone$ HsAssocNone9 hsassocleftF HsAssocLeft8hsassocdHsAssoc7hsaspat~HsAsPat6hsappHsApp5hsaltHsAlt34 haskell-src haskell-src getsrcloc getSrcLoc2 getoffside  getOffside1getinput)getInput0fun_tycon_nameKfun_tycon_name/ fun_tyconn fun_tycon.floattokFloatTok- exclamation Exclamation,equalsEquals+eofEOF* doublecolon DoubleColon) doublearrow DoubleArrow(dotdot5DotDot'doindentOdoIndent&discardjdiscard%defaultparsemodedefaultParseMode#$ defaultmode defaultMode"consymConSym!conidConId commentscommentscommaCommacolon4Colon classindentP classIndent checkvaldefr checkValDef checkunqual checkUnQual checkrevdecls checkRevDecls checkprec checkPrec checkpattern checkPatterncheckinstheader"checkInstHeader checkexprF checkExprcheckdataheaderjcheckDataHeader checkcontext checkContextcheckclassheadercheckClassHeadercheckclassbodycheckClassBodycheckbolcheckBOLcheckassertion'checkAssertion characterJ Character caseindenti caseIndent barBar backslash Backslash backquote BackQuote atsrclocatSrcLoc atAt alternative alternativeCj[k5}9cD {čYsE|@̉tԇ)n&hnq\ـW~s~}|f|{M{zyGyxxw>wvQvvutFts sYrq#qfponnlzliihWhg;gefqedddHcbaaam`_&_^^;]\[z[Z$Z@YXHXWVUzUTTSSRRQQPONNM,MLK;KJ%JIDIH,HGFkFEE#EDDCECBZBAZAo@?`?>)>I=<:<;";: :q98s8776>65954*433221000/6/.g.-'-,,**P**))R) )((H(('z'>'&&|&8&%%n%*%$$^$$##Z##"9"!!m!'! V  1:S s-HO`|||*KCU  (  X  q    1I@?'m)c<z"Th:xf$8q* whereIndent whereIndent :: PPHsMode -> Indent{PPHsModeIndent;indentation of the declarations in a where clause  VRightCurly VRightCurly :: Token TokenVarSymVarSym :: String -> Tokenm[StringTokenVarIdVarId :: String -> TokenStringTokenUnQualUnQual :: HsName -> HsQName#HsNameHsQNameunqualified name unit_tycon_nameunit_tycon_name :: HsQName~HsQName unit_tycon unit_tycon :: HsTypeHsType unit_con_name unit_con_name :: HsQName HsQNameunit_conunit_con :: HsExpbZHsExp Underscore Underscore :: TokenTokentuple_tycon_nametuple_tycon_name :: Int -> HsQNameIntHsQName tuple_tycon tuple_tycon :: Int -> HsTypetdIntHsTypetuple_con_nametuple_con_name :: Int -> HsQNameIntHsQName tuple_con tuple_con :: Int -> HsExp6'IntHsExpTokendata TokendTildeTilde :: TokenToken StringTok StringTok :: String -> TokenStringToken startToken startToken :: Lex a ()PALexa()SrcLoc SrcLoc :: String -> Int -> Int -> SrcLocStringIntIntSrcLocSrcLocdata SrcLocA position in the source. srcLinesrcLine :: SrcLoc -> IntvfSrcLocInt srcFilename srcFilename :: SrcLoc -> StringSrcLocString srcColumn srcColumn :: SrcLoc -> Int8(SrcLocInt splitTyConApp splitTyConApp :: HsType -> P (HsName, [HsType])HsTypeP(,)HsName[]HsTypeSpecialSpecial ::  HsSpecialCon -> HsQName6 HsSpecialConHsQName)built-in constructor with special syntax spacingspacing :: PPHsMode -> BoolPPHsModeBool blank lines between statements? setBOLsetBOL :: Lex a ()%Lexa() SemiColon SemiColon :: TokeniaTokenrunParserWithMode runParserWithMode ::  ParseMode -> P a -> String ->  ParseResult a# ParseModePaString ParseResulta runParser runParser :: P a -> String ->  ParseResult aPaString ParseResulta RightSquare RightSquare :: TokenToken RightParen RightParen :: Token;3Token RightCurly RightCurly :: TokenyToken RightArrow RightArrow :: TokenTokenQVarSymQVarSym :: (String, String) -> Token<(,)StringStringTokenQVarIdQVarId :: (String, String) -> Token(,)StringStringTokenQualQual :: Module -> HsName -> HsQName#ModuleHsNameHsQName"name qualified with a module name QConSymQConSym :: (String, String) -> Token(,)StringStringTokenQConIdQConId :: (String, String) -> Token- (,)StringStringTokenpushCurrentContextpushCurrentContext :: P ()zP() pushContextL pushContextL ::  LexContext -> Lex a () LexContextLexa()prettyPrintWithModeprettyPrintWithMode ::  Pretty a => PPHsMode -> a -> String z PrettyaPPHsModeaString6pretty-print with the default style and a given mode. prettyPrintStyleMode prettyPrintStyleMode ::  Pretty a => Style -> PPHsMode -> a -> String f PrettyaStylePPHsModeaString*pretty-print with a given style and mode.  prettyPrint prettyPrint ::  Pretty a => a -> String1  PrettyaaString<pretty-print with the default style and defaultMode. Prettyclass Pretty a jThings that can be pretty-printed, including all the syntactic objects in Language.Haskell.Syntax.  prelude_mod prelude_mod :: ModuleT K Module PPSemiColon PPSemiColon :: PPLayout  PPLayoutclassical layout made explicit  PPOffsideRule PPOffsideRule :: PPLayout  PPLayoutclassical layout  PPNoLayout PPNoLayout :: PPLayoutp e PPLayouteverything on a single line PPLayoutdata PPLayout  Varieties of layout we can use. PPInLinePPInLine :: PPLayout(PPLayout)inline decls, with newlines between them PPHsModePPHsMode :: Indent -> Indent -> Indent -> Indent -> Indent -> Indent -> Bool -> PPLayout -> Bool ->  Bool -> PPHsMode> IndentIndentIndentIndentIndentIndentBoolPPLayoutBoolBoolPPHsModePPHsModedata PPHsModetPretty-printing parameters. Note: the onsideIndent must be positive and less than all other indents.  popContextL popContextL :: String -> Lex a ()StringLexa() popContext popContext :: P ()P() ParseResultdata  ParseResult a0The result of a parse.  ParseResultdata  ParseResult aThe result of a parse. ParseOkParseOk :: a ->  ParseResult aa ParseResulta'The parse succeeded, yielding a value. ParseOkParseOk :: a ->  ParseResult asa ParseResulta'The parse succeeded, yielding a value. parseModuleWithModeparseModuleWithMode ::  ParseMode -> String -> ParseResult HsModuleg8 ParseModeString ParseResultHsModuleFParse of a string, which should contain a complete Haskell 98 module.  parseModule parseModule :: String -> ParseResult HsModule2String ParseResultHsModuleFParse of a string, which should contain a complete Haskell 98 module.  ParseMode ParseMode :: String ->  ParseModeString ParseMode ParseModedata  ParseModebStatic parameters governing a parse. More to come later, e.g. literate mode, language extensions.  ParseMode ParseMode :: String ->  ParseModeString ParseMode ParseModedata  ParseModebStatic parameters governing a parse. More to come later, e.g. literate mode, language extensions.  parseFilename parseFilename ::  ParseMode -> String ParseModeString'original name of the file being parsed  parseFilename parseFilename ::  ParseMode -> Stringi ParseModeString'original name of the file being parsed  ParseFailed ParseFailed :: SrcLoc -> String ->  ParseResult a7SrcLocString ParseResultaJThe parse failed at the specified source location, with an error message.  ParseFailed ParseFailed :: SrcLoc -> String ->  ParseResult aSrcLocString ParseResultaJThe parse failed at the specified source location, with an error message. Pdata P aMonad for parsing  onsideIndent onsideIndent :: PPHsMode -> IndentPPHsModeIndentIindentation added for continuation lines that would otherwise be offside NoLayoutNoLayout ::  LexContext LexContextModuleModule :: String -> ModuleStringModuleModulenewtype Module&The name of a Haskell module. mkRecConstrOrUpdatemkRecConstrOrUpdate :: HsExp -> [HsFieldUpdate] -> P HsExpHsExp[] HsFieldUpdatePHsExpMinusMinus :: Token)!Token main_name main_name :: HsNameofHsNamemain_modmain_mod :: ModuleModulelist_tycon_namelist_tycon_name :: HsQNameHsQName list_tycon list_tycon :: HsTypeOFHsTypelist_cons_namelist_cons_name :: HsQNameHsQName linePragmas linePragmas :: PPHsMode -> BoolPPHsModeBool/add GHC-style LINE pragmas to output? lexWhilelexWhile :: (Char -> Bool) ->  Lex a StringCharBoolLexaStringlexTablexTab :: Lex a ()Lexa()1Discard the next character, which must be a tab.  lexNewline lexNewline :: Lex a ()}nLexa()5Discard the next character, which must be a newline. lexerlexer :: (Token -> P a) -> P a TokenPaPa LexContextdata  LexContextR Lexdata Lex r a  letIndent letIndent :: PPHsMode -> Indent  PPHsModeIndent=indentation of the declarations in a let expression  LeftSquare LeftSquare :: Tokeni!a!Token LeftParen LeftParen :: Token!!Token LeftCurly LeftCurly :: Token!!Token LeftArrow LeftArrow :: Token5"-"Tokenlayoutlayout :: PPHsMode -> PPLayout""PPHsModePPLayoutPretty-printing style to use LayoutLayout :: Int ->  LexContext##Int LexContextKW_WhereKW_Where :: TokenV#N#Token KW_Unsafe KW_Unsafe :: Token##TokenKW_TypeKW_Type :: Token##TokenKW_ThenKW_Then :: Token$$TokenKW_SafeKW_Safe :: TokenZ$R$Token KW_Qualified KW_Qualified :: Token$$TokenKW_OfKW_Of :: Token$$Token KW_NewType KW_NewType :: Token&%%Token KW_Module KW_Module :: Tokenj%b%TokenKW_LetKW_Let :: Token%%Token KW_Instance KW_Instance :: Token%%Token KW_InfixR KW_InfixR :: Token4&,&Token KW_InfixL KW_InfixL :: Tokenx&p&TokenKW_InfixKW_Infix :: Token&&TokenKW_InKW_In :: Token&&Token KW_Import KW_Import :: Token:'2'TokenKW_IfKW_If :: Tokenv'n'Token KW_Hiding KW_Hiding :: Token''Token KW_Foreign KW_Foreign :: Token('Token KW_Export KW_Export :: TokenD(<(TokenKW_ElseKW_Else :: Token(|(TokenKW_DoKW_Do :: Token((Token KW_Deriving KW_Deriving :: Token))Token KW_Default KW_Default :: TokenN)F)TokenKW_DataKW_Data :: Token))TokenKW_ClassKW_Class :: Token))TokenKW_CaseKW_Case :: Token**TokenKW_AsKW_As :: TokenL*D*TokenIntTokIntTok :: Integer -> Token**IntegerTokenIndenttype Indent = Int* importSpecs importSpecs ::  HsImportDecl -> Maybe (Bool, [HsImportSpec])+O+ HsImportDeclMaybe(,)Bool[] HsImportSpecuoptional list of import specifications. The Bool is True if the names are excluded by hiding. importQualifiedimportQualified ::  HsImportDecl -> Boolu,^, HsImportDeclBoolimported qualified?  importModule importModule ::  HsImportDecl -> Module-, HsImportDeclModulename of the module imported.  importLoc importLoc ::  HsImportDecl -> SrcLoc-x- HsImportDeclSrcLoc)position of the import keyword. importAsimportAs ::  HsImportDecl ->  Maybe Module5.. HsImportDeclMaybeModule.optional alias name in an as clause.  HsWildCard HsWildCard :: HsExp..HsExppatterns only HsVarOpHsVarOp :: HsName -> HsOp//HsNameHsOp!variable operator (varop)  HsVarName HsVarName :: HsName -> HsCName//HsNameHsCNamename of a method or field HsVarHsVar :: HsQName -> HsExp 0/HsQNameHsExp variable HsUnsafeHsUnsafe :: HsSafety[0P0HsSafety!call will not generate callbacks  HsUnitCon HsUnitCon ::  HsSpecialCon00 HsSpecialCon+unit type and data constructor () HsUnGuardedRhsHsUnGuardedRhs :: HsExp -> HsRhsa1P1HsExpHsRhs'unguarded right hand side (exp) HsUnGuardedAltHsUnGuardedAlt :: HsExp ->  HsGuardedAlts21HsExp HsGuardedAlts-> exp  HsUnBangedTy HsUnBangedTy :: HsType ->  HsBangType2s2HsType HsBangTypenon-strict component HsTyVarHsTyVar :: HsName -> HsType22HsNameHsTypetype variable  HsTyTuple HsTyTuple :: [HsType] -> HsTypeu3\3[]HsTypeHsType tuple type  HsTypeSig  HsTypeSig :: SrcLoc -> [HsName] ->  HsQualType -> HsDecl&43SrcLoc[]HsName HsQualTypeHsDecl HsTypeDecl  HsTypeDecl :: SrcLoc -> HsName -> [HsName] -> HsType -> HsDecl44SrcLocHsName[]HsNameHsTypeHsDeclHsTypedata HsType5%Haskell types and type constructors. HsTyFunHsTyFun :: HsType -> HsType -> HsType55HsTypeHsTypeHsTypefunction type HsTyConHsTyCon :: HsQName -> HsType66HsQNameHsTypenamed type or type constructor HsTyAppHsTyApp :: HsType -> HsType -> HsType66HsTypeHsTypeHsType"application of a type constructor  HsTupleCon HsTupleCon :: Int ->  HsSpecialCon>7(7Int HsSpecialCon?n-ary tuple type and data constructors (,) etc HsTupleHsTuple :: [HsExp] -> HsExp77[]HsExpHsExptuple expression HsSymbolHsSymbol :: String -> HsNameP8=8StringHsNamevarsym or consym  HsStringPrim HsStringPrim :: String ->  HsLiteral88String HsLiteralGHC unboxed string literal HsStringHsString :: String ->  HsLiteral^9H9String HsLiteralstring literal HsStmtdata HsStmt9lThis type represents both stmt in a do-expression, and qual in a list comprehension.  HsSpecialCondata  HsSpecialConE:zConstructors with special syntax. These names are never qualified, and always refer to builtin type or data constructors. HsSafetydata HsSafety:+Safety level for invoking a foreign entity HsSafeHsSafe :: HsSafetyb;W;HsSafetycall may generate callbacks HsRightSectionHsRightSection :: HsQOp -> HsExp -> HsExp;;HsQOpHsExpHsExp8right section (qop exp) HsRhsdata HsRhsd<6The right hand side of a function or pattern binding.  HsRecUpdate HsRecUpdate :: HsExp -> [HsFieldUpdate] -> HsExp,==HsExp[] HsFieldUpdateHsExprecord update expression  HsRecDecl  HsRecDecl :: SrcLoc -> HsName -> [([HsName], HsBangType)] ->  HsConDecl>=SrcLocHsName[](,)[]HsName HsBangType HsConDeclrecord constructor  HsRecConstr HsRecConstr :: HsQName -> [HsFieldUpdate] -> HsExp>>HsQName[] HsFieldUpdateHsExprecord construction expression HsQVarOpHsQVarOp :: HsQName -> HsQOp:?'?HsQNameHsQOp"variable operator (qvarop)  HsQualType HsQualType ::  HsContext -> HsType ->  HsQualType?? HsContextHsType HsQualType HsQualTypedata  HsQualType @KA type qualified with a context. An unqualified type has an empty context.  HsQualifier HsQualifier :: HsExp -> HsStmt@@HsExpHsStmtan exp by itself: in a do-expression, an action whose result is discarded; in a list comprehension, a guard expression HsQOpdata HsQOpAKPossibly qualified infix operators (qop), appearing in expressions. HsQNamedata HsQNameBUThis type is used to represent qualified variables, and also qualified constructors. HsQConOpHsQConOp :: HsQName -> HsQOpBBHsQNameHsQOp%constructor operator (qconop)  HsPWildCard HsPWildCard :: HsPat#CCHsPatwildcard pattern (_) HsPVarHsPVar :: HsName -> HsPatCCHsNameHsPat variable HsPTupleHsPTuple :: [HsPat] -> HsPatDC[]HsPatHsPattuple pattern HsPRecHsPRec :: HsQName ->  [HsPatField] -> HsPatDwDHsQName[] HsPatFieldHsPatlabelled pattern HsPParenHsPParen :: HsPat -> HsPat EDHsPatHsPatparenthesized pattern HsPNegHsPNeg :: HsPat -> HsPatwEfEHsPatHsPatnegated pattern HsPLitHsPLit ::  HsLiteral -> HsPatEE HsLiteralHsPatliteral constant HsPListHsPList :: [HsPat] -> HsPatZFCF[]HsPatHsPat list pattern  HsPIrrPat HsPIrrPat :: HsPat -> HsPatFFHsPatHsPat!irrefutable pattern (~)  HsPInfixApp  HsPInfixApp :: HsPat -> HsQName -> HsPat -> HsPat|G[GHsPatHsQNameHsPatHsPat$pattern with infix data constructor  HsPFieldPat HsPFieldPat :: HsQName -> HsPat ->  HsPatField(H HHsQNameHsPat HsPatField HsPatFielddata  HsPatField`H,An fpat in a labeled record pattern.  HsPatBind  HsPatBind :: SrcLoc -> HsPat -> HsRhs -> [HsDecl] -> HsDecl@IISrcLocHsPatHsRhs[]HsDeclHsDeclHsPatdata HsPatnI*A pattern, to be matched against a value. HsPAsPatHsPAsPat :: HsName -> HsPat -> HsPatJIHsNameHsPatHsPat@-pattern HsParenHsParen :: HsExp -> HsExp{JjJHsExpHsExpparenthesized expression HsPAppHsPApp :: HsQName -> [HsPat] -> HsPatKJHsQName[]HsPatHsPat'data constructor and argument patterns HsOpdata HsOpcK5Operators, appearing in infix declarations.  HsNewTypeDecl HsNewTypeDecl :: SrcLoc ->  HsContext -> HsName -> [HsName] ->  HsConDecl ->  [HsQName] -> HsDeclLTLSrcLoc HsContextHsName[]HsName HsConDecl[]HsQNameHsDeclHsNegAppHsNegApp :: HsExp -> HsExpLLHsExpHsExp*negation expression - exp HsNamedata HsNameXMAThis type is used to represent variables, and also constructors. HsModuleHsModule :: SrcLoc -> Module -> Maybe [HsExportSpec] -> [HsImportDecl] -> [HsDecl] -> HsModuleNHNSrcLocModuleMaybe[] HsExportSpec[] HsImportDecl[]HsDeclHsModuleHsModuledata HsModuleNA Haskell source module. HsMatchHsMatch :: SrcLoc -> HsName -> [HsPat] -> HsRhs -> [HsDecl] -> HsMatchOOSrcLocHsName[]HsPatHsRhs[]HsDeclHsMatchHsMatchdata HsMatchOClauses of a function binding.  HsLiteraldata  HsLiteralLPliteral. Values of this type hold the abstract value of the literal, not the precise string representation used. For example, 10, 0o12 and 0xa have the same representation. HsLitHsLit ::  HsLiteral -> HsExpyQdQ HsLiteralHsExpliteral constant  HsListCon HsListCon ::  HsSpecialConQQ HsSpecialCon"list type constructor []  HsListComp HsListComp :: HsExp -> [HsStmt] -> HsExpRaRHsExp[]HsStmtHsExplist comprehension HsListHsList :: [HsExp] -> HsExpRR[]HsExpHsExplist expression  HsLetStmt HsLetStmt :: [HsDecl] -> HsStmtmSTS[]HsDeclHsStmtlocal bindings HsLetHsLet :: [HsDecl] -> HsExp -> HsExpSS[]HsDeclHsExpHsExp%local declarations with let  HsLeftSection HsLeftSection :: HsExp -> HsQOp -> HsExpTTHsExpHsQOpHsExp7left section (exp qop) HsLambda HsLambda :: SrcLoc -> [HsPat] -> HsExp -> HsExpdU>USrcLoc[]HsPatHsExpHsExplambda expression HsIVarHsIVar :: HsName ->  HsImportSpecUUHsName HsImportSpec variable  HsIThingWith HsIThingWith :: HsName ->  [HsCName] ->  HsImportSpecVWVHsName[]HsCName HsImportSpeczT(C_1,...,C_n): a class imported with some of its methods, or a datatype imported with some of its constructors.  HsIThingAll HsIThingAll :: HsName ->  HsImportSpeckWRWHsName HsImportSpecoT(..): a class imported with all of its methods, or a datatype imported with all of its constructors. HsIrrPatHsIrrPat :: HsExp -> HsExp6X%XHsExpHsExppatterns only  HsIntPrim HsIntPrim :: Integer ->  HsLiteralXXInteger HsLiteralGHC unboxed integer literal HsIntHsInt :: Integer ->  HsLiteral,YYInteger HsLiteralinteger literal  HsInstDecl HsInstDecl :: SrcLoc ->  HsContext -> HsQName -> [HsType] -> [HsDecl] -> HsDecl ZYSrcLoc HsContextHsQName[]HsType[]HsDeclHsDecl HsInfixDecl  HsInfixDecl :: SrcLoc -> HsAssoc -> Int -> [HsOp] -> HsDeclZZSrcLocHsAssocInt[]HsOpHsDecl HsInfixApp  HsInfixApp :: HsExp -> HsQOp -> HsExp -> HsExpd[E[HsExpHsQOpHsExpHsExpinfix application  HsImportSpecdata  HsImportSpec[Import specification.  HsImportDecl HsImportDecl :: SrcLoc -> Module -> Bool ->  Maybe Module -> Maybe (Bool, [HsImportSpec]) ->  HsImportDecl\\SrcLocModuleBoolMaybeModuleMaybe(,)Bool[] HsImportSpec HsImportDecl HsImportDecldata  HsImportDecl#]Import declaration. HsIf HsIf :: HsExp -> HsExp -> HsExp -> HsExp]]HsExpHsExpHsExpHsExpIif exp then exp else exp HsIdentHsIdent :: String -> HsNameb^O^StringHsNamevarid or conid HsIAbsHsIAbs :: HsName ->  HsImportSpec^^HsName HsImportSpec;T: the name of a class, datatype or type synonym.  HsGuardedRhss HsGuardedRhss :: [HsGuardedRhs] -> HsRhs__[] HsGuardedRhsHsRhs'guarded right hand side (gdrhs)  HsGuardedRhs  HsGuardedRhs :: SrcLoc -> HsExp -> HsExp ->  HsGuardedRhsi`B`SrcLocHsExpHsExp HsGuardedRhs HsGuardedRhsdata  HsGuardedRhs`tA guarded right hand side | exp = exp. The first expression will be Boolean-valued.  HsGuardedAlts HsGuardedAlts :: [HsGuardedAlt] ->  HsGuardedAltsaa[] HsGuardedAlt HsGuardedAlts gdpat  HsGuardedAltsdata  HsGuardedAltsa HsGuardedAlt  HsGuardedAlt :: SrcLoc -> HsExp -> HsExp ->  HsGuardedAltbmbSrcLocHsExpHsExp HsGuardedAlt HsGuardedAltdata  HsGuardedAltbtA guarded alternative | exp -> exp. The first expression will be Boolean-valued.  HsGenerator  HsGenerator :: SrcLoc -> HsPat -> HsExp -> HsStmtccSrcLocHsPatHsExpHsStmt1a generator pat <- exp HsFunConHsFunCon ::  HsSpecialCon[dLd HsSpecialCon)function type constructor ->  HsFunBind HsFunBind ::  [HsMatch] -> HsDecldd[]HsMatchHsDeclHsFracHsFrac :: Rational ->  HsLiteralVe>eRational HsLiteralfloating point literal HsForeignImportHsForeignImport :: SrcLoc -> String -> HsSafety -> String -> HsName -> HsType -> HsDeclaf$fSrcLocStringHsSafetyStringHsNameHsTypeHsDeclHsForeignExportHsForeignExport :: SrcLoc -> String -> String -> HsName -> HsType -> HsDecl7ggSrcLocStringStringHsNameHsTypeHsDecl HsFloatPrim HsFloatPrim :: Rational ->  HsLiteralggRational HsLiteralGHC unboxed float literal  HsFieldUpdate HsFieldUpdate :: HsQName -> HsExp ->  HsFieldUpdateSh1hHsQNameHsExp HsFieldUpdate HsFieldUpdatedata  HsFieldUpdatehGAn fbind in a labeled record construction or update expression.  HsExpTypeSig  HsExpTypeSig :: SrcLoc -> HsExp ->  HsQualType -> HsExpxiSiSrcLocHsExp HsQualTypeHsExpexpression type signature  HsExportSpecdata  HsExportSpeciExport specification. HsExpdata HsExpjdHaskell expressions. Notes:
  • Because it is difficult for parsers to distinguish patterns from expressions, they typically parse them in the same way and then check that they have the appropriate form. Hence the expression type includes some forms that are found only in patterns. After these checks, these constructors should not be used.
  • The parser does not take precedence and associativity into account, so it will leave HsInfixApps associated to the left.
  • The Language.Haskell.Pretty.Pretty instance for HsExp does not add parentheses in printing.
HsEVarHsEVar :: HsQName ->  HsExportSpecllHsQName HsExportSpec variable  HsEThingWith HsEThingWith :: HsQName ->  [HsCName] ->  HsExportSpecmZmHsQName[]HsCName HsExportSpeczT(C_1,...,C_n): a class exported with some of its methods, or a datatype exported with some of its constructors.  HsEThingAll HsEThingAll :: HsQName ->  HsExportSpecqnWnHsQName HsExportSpecoT(..): a class exported with all of its methods, or a datatype exported with all of its constructors.  HsEnumFromTo HsEnumFromTo :: HsExp -> HsExp -> HsExp\oDoHsExpHsExpHsExp/bounded arithmetic sequence, incrementing by 1 HsEnumFromThenTo HsEnumFromThenTo :: HsExp -> HsExp -> HsExp -> HsExp'ppHsExpHsExpHsExpHsExp;bounded arithmetic sequence, with first two elements given HsEnumFromThenHsEnumFromThen :: HsExp -> HsExp -> HsExpppHsExpHsExpHsExp=unbounded arithmetic sequence, with first two elements given  HsEnumFrom HsEnumFrom :: HsExp -> HsExpqnqHsExpHsExp1unbounded arithmetic sequence, incrementing by 1 HsEModuleContentsHsEModuleContents :: Module ->  HsExportSpec.rrModule HsExportSpec'module M: re-export a module. HsEAbsHsEAbs :: HsQName ->  HsExportSpecrrHsQName HsExportSpecHT: a class or datatype exported abstractly, or a type synonym.  HsDoublePrim HsDoublePrim :: Rational ->  HsLiteralysasRational HsLiteralGHC unboxed double literal HsDoHsDo :: [HsStmt] -> HsExpss[]HsStmtHsExpPdo-expression: the last statement in the list should be an expression.  HsDefaultDecl HsDefaultDecl :: SrcLoc -> [HsType] -> HsDeclttSrcLoc[]HsTypeHsDeclHsDecldata HsDeclt HsDataDecl HsDataDecl :: SrcLoc ->  HsContext -> HsName -> [HsName] ->  [HsConDecl] ->  [HsQName] -> HsDecl vuSrcLoc HsContextHsName[]HsName[] HsConDecl[]HsQNameHsDecl HsContexttype  HsContext = [HsAsst]MvHsConsHsCons ::  HsSpecialConvv HsSpecialCon#list data constructor (:) HsConOpHsConOp :: HsName -> HsOpwwHsNameHsOp$constructor operator (conop)  HsConName HsConName :: HsName -> HsCNamewwHsNameHsCNamename of a data constructor  HsConDecl  HsConDecl :: SrcLoc -> HsName ->  [HsBangType] ->  HsConDeclex5xSrcLocHsName[] HsBangType HsConDeclordinary data constructor  HsConDecldata  HsConDeclx#Declaration of a data constructor. HsConHsCon :: HsQName -> HsExp2yyHsQNameHsExpdata constructor HsCNamedata HsCNameuylA name (cname) of a component of a class or data type in an import or export specification.  HsClassDecl HsClassDecl :: SrcLoc ->  HsContext -> HsName -> [HsName] -> [HsDecl] -> HsDeclzzSrcLoc HsContextHsName[]HsName[]HsDeclHsDecl HsCharPrim HsCharPrim :: Char ->  HsLiteral+{{Char HsLiteralGHC unboxed character literal HsCharHsChar :: Char ->  HsLiteral{{Char HsLiteralcharacter literal HsCaseHsCase :: HsExp -> [HsAlt] -> HsExp1||HsExp[]HsAltHsExp1case exp of alts  HsBangTypedata  HsBangType|[The type of a constructor argument or field, optionally including a strictness annotation.  HsBangedTy HsBangedTy :: HsType ->  HsBangTypea}J}HsType HsBangType+strict component, marked with "!" HsAssttype HsAsst = (HsQName, [HsType])}Class assertions. In Haskell 98, the argument would be a tyvar, but this definition allows multiple parameters, and allows them to be types.  HsAssocRight HsAssocRight :: HsAssoc~~HsAssoc;right-associative operator (declared with infixr)  HsAssocNone HsAssocNone :: HsAssocD:HsAssoc8non-associative operator (declared with infix)  HsAssocLeft HsAssocLeft :: HsAssocHsAssoc;left-associative operator (declared with infixl). HsAssocdata HsAssoc5Associativity of an operator. HsAsPatHsAsPat :: HsName -> HsExp -> HsExpǀHsNameHsExpHsExppatterns only HsAppHsApp :: HsExp -> HsExp -> HsExpC+HsExpHsExpHsExpordinary application HsAlt HsAlt :: SrcLoc -> HsPat ->  HsGuardedAlts -> [HsDecl] -> HsAlt܁SrcLocHsPat HsGuardedAlts[]HsDeclHsAltHsAltdata HsAlt@-An alt in a case expression.  getSrcLoc getSrcLoc :: P SrcLocPSrcLoc getOffside getOffside :: Lex a OrderingLexaOrderinggetInputgetInput ::  Lex r StringjWLexrStringfun_tycon_namefun_tycon_name :: HsQNameHsQName fun_tycon fun_tycon :: HsTypeHsTypeFloatTokFloatTok :: Rational -> TokendPRationalToken Exclamation Exclamation :: TokenTokenEqualsEquals :: TokenTokenEOFEOF :: Token"Token DoubleColon DoubleColon :: TokenjbToken DoubleArrow DoubleArrow :: TokenTokenDotDotDotDot :: TokenTokendoIndentdoIndent :: PPHsMode -> IndentT?PPHsModeIndent(indentation of a do-expression discarddiscard :: Int -> Lex r ()܆ƆIntLexr()IDiscard some input characters (these must not include tabs or newlines). defaultParseModedefaultParseMode ::  ParseModes ParseModeQDefault parameters for a parse, currently just a marker for an unknown filename. defaultParseModedefaultParseMode ::  ParseMode* ParseModeQDefault parameters for a parse, currently just a marker for an unknown filename.  defaultMode defaultMode :: PPHsModeɈPPHsModeMThe default mode: pretty-print using the offside rule and sensible defaults. ConSymConSym :: String -> Tokenp^StringTokenConIdConId :: String -> TokenȉStringTokencommentscomments :: PPHsMode -> Bool(PPHsModeBoolnot implemented yet CommaComma :: TokenxpTokenColonColon :: TokenToken classIndent classIndent :: PPHsMode -> Indent PPHsModeIndent#indentation of a class or instance  checkValDef  checkValDef :: SrcLoc -> HsExp -> HsRhs -> [HsDecl] -> P HsDecl̋SrcLocHsExpHsRhs[]HsDeclPHsDecl checkUnQual checkUnQual :: HsQName -> P HsNameoVHsQNamePHsName checkRevDecls checkRevDecls :: [HsDecl] ->  P [HsDecl]̌[]HsDeclP[]HsDecl checkPrec checkPrec :: Integer -> P IntU?IntegerPInt checkPattern checkPattern :: HsExp -> P HsPatHsExpPHsPatcheckInstHeadercheckInstHeader ::  HsQualType ->  P (HsContext, HsQName, [HsType])w9 HsQualTypeP(,,) HsContextHsQName[]HsType checkExpr checkExpr :: HsExp -> P HsExp܎ƎHsExpPHsExpcheckDataHeadercheckDataHeader ::  HsQualType -> P (HsContext, HsName, [HsName])T HsQualTypeP(,,) HsContextHsName[]HsName checkContext checkContext :: HsType ->  P HsContextHsTypeP HsContextcheckClassHeadercheckClassHeader ::  HsQualType -> P (HsContext, HsName, [HsName]) HsQualTypeP(,,) HsContextHsName[]HsNamecheckClassBodycheckClassBody :: [HsDecl] ->  P [HsDecl]@[]HsDeclP[]HsDeclcheckBOLcheckBOL ::  Lex a BoolLexaBoolcheckAssertioncheckAssertion :: HsType -> P HsAsstHsTypePHsAsst Character Character :: Char -> Token_OCharToken caseIndent caseIndent :: PPHsMode -> IndentǒPPHsModeIndent6indentation of the body of a case expression BarBar :: Token5-Token Backslash Backslash :: TokenyqToken BackQuote BackQuote :: TokenTokenatSrcLocatSrcLoc :: P a -> SrcLoc -> P a1PaSrcLocPaAtAt :: Tokeng_Token alternative alternative :: Lex a v -> Lex a (Lex a v)ĔLexavLexaLexavSyntaxmodule Language.Haskell.Syntax*iA suite of datatypes describing the abstract syntax of Haskell 98 http://www.haskell.org/onlinereport/ plus a few extensions:
  • multi-parameter type classes
  • parameters of type class assertions are unrestricted
This module has been changed so that show is a real show. For GHC, we also derive Typeable and Data for all types. Prettymodule Language.Haskell.PrettyҖPretty printer for Haskell.  ParseUtilsmodule Language.Haskell. ParseUtils5"Utilities for the Haskell parser. Parsermodule Language.Haskell.ParserHaskell parser.  ParseMonadmodule Language.Haskell. ParseMonad)Monads for the Haskell parser and lexer. Lexermodule Language.Haskell.LexerSLexer for Haskell. haskell-srcpackage  haskell-srcManipulating Haskell source code Facilities for manipulating Haskell source code: an abstract syntax, lexer, parser and pretty-printer. șu]DLanguageHaskellParserLanguageHaskellLexerLanguageHaskell ParseUtilsLanguageHaskell ParseMonadLanguageHaskellPrettyLanguageHaskellSyntax haskell-src1.0.1.3Ihttp://hackage.haskell.org/packages/archive/haskell-src/1.0.1.3/doc/html/Fhttp://hackage.haskell.org/cgi-bin/hackage-scripts/package/haskell-src