HOOG!$'+-1oo<>_a%  +-0088<<?@CFU[__hhor} b 35VVXXqruuc"+./11<<BBEE[[``hhnnqr~d ##((+6=@BBHISTWYhh  e= !!#$((-0257;=@BBGHJJLPRRTUXX\\aahhjkmmoqstww{{}}      f 00::<T]gvv  gGHUZjkh  LOZ\~i( ++0044=BDDGI]nu|  jkrrl"((003588=@CFVVbbklo}  m!((--4477DDIQ]]lmop~  n% "(++--66BBGHLOSUZZ^l}}   o! (++15::BQVV]]fgp% !!%%44779;=@DDIIRRTU\]__ddlmxx|}q &&**//5588;;>>@@YYggr ((44::BBDQWY]]eejlnnqr}} s$ 5588RR\\hhmnttwy  t, '-005577::<<?DFFLQUU[[]]hnstv|~u((003588STWY v w x)*009;=>AB^ey0067ABmmeWn<|2()N2->&2All2Any1ArithException1Array1ArrayException1AsyncException1Body1Bool[1 BufferModeI1 BufferStateE1CChar0CClock0CDev0CDouble@0CFloat/CIno/CIntW/CIntMax/CIntPtr.CLDoublen.CLLong&.CLong-CMode-COffN-CPid-CPtrdiff,CSCharv,CShort., CSigAtomic+CSize+CSsizeV+CTime$+CUChar*CUInt*CUIntMaxL*CUIntPtr*CULLong)CULongt)CUShort,)CWchar(Callconv(Chan(Charn(ClauseS(ComplexH(Con-( ConsoleEvent (Constr( ConstrRep'DataRep'DataType'Dec'Digit'Doc'Double2'Dynamic#'E12'E6'Elem&Errno& Exception&ExitCode&Exp&FDType&Fda& FingerTreeC&Fixity,&FixityDirection&Float%Foreign%FunDepr%GeneralCategoryP%Guard9%Handle+% HandlePosn"% HandleType%HashData%IO$ IOErrorType$ IOException$IOMode$Id$Identity$Info$Inserts$Int$Int16#Int32]#Int64"Int8"IntMap"IntPtr;"IntSet"Integer!Lexeme!Lit!Map!Match!Maybe5!Name! NameFlavour! NameSpace Node Ordering P Patr PprMk QV QSemL QSemNB Range' ReadP ReadPrecSTMSTUArraySafetySeekModeSeqhSetT StableNameIStmt.StrictTVar ThreadIdTimeoutTreeTyConTypeTypeRepUArrayUniqueVersionViewLViewRWeakWord$Word16Word32fWord64Word8WordPtr`ZipListK[::]<[] TraversableFoldableMonadFix Applicative Alternative MonadPlusFunctorMonadFunctorMonadFunctor Applicative ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEqIArrayMArray PrintfArgStorableDataEqOrdNumEnumIntegralBitsShowRealBoundedIxReadIArrayMArray PrintfArgStorableDataNumEnumIntegralBitsShowRealBoundedIxReadOrdEqIArrayMArray PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEqIArrayMArray PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEqIArrayMArray Typeable1 Typeable1FunctorFoldable Traversable Typeable1FunctorFoldable TraversableEqOrdShowReadTypeableOrdEq Typeable2IArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayIArrayDataPprDataEqShowTypeableData Typeable1Functor ApplicativeMonad TraversableFoldableEqTypeableDataShowEqOrdTypeable Typeable1DataEqShowTypeablePprDataEqShowTypeable Typeable1Foldable Typeable1FunctorFoldable TraversableMonad MonadPlus Typeable1ShowReadEnumIxOrdEqDataEqShowTypeable Typeable3 Typeable1FunctorMonadFunctorMonad MonadPlusFunctorMonad MonadPlusPprDataEqShowTypeableTypeableTypeableMonadFunctorQuasiMonadPprDataEqShowTypeableMonad MonadPlus MonoidDataReadShowBoundedEnumIxOrdEqFoldableFunctor TraversableDataOrdEqTypeableDataEqOrdTypeablePprEqOrdShowDataTypeable TraversableFoldableMonadFix Applicative AlternativeFunctorMonad MonadPlusPprDataEqShowTypeable Typeable2DataEqShowTypeableShowEqRead Lift PrintfArgBitsDataReadEqOrdNumEnumShowIxRealIntegralMonoidDataEqOrdShowReadTypeable ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqFoldableFunctor Typeable1 PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEqIArrayMArray PrintfArgStorableDataEqOrdShowNumEnumIntegralReadBitsRealBoundedIxIArrayMArray PrintfArgStorableDataShowNumEnumIntegralReadBitsRealBoundedIxOrdEqIArrayMArray PrintfArgStorableDataShowNumRealEnumIntegralBoundedIxReadBitsOrdEqIArrayMArrayLift PrintfArgBitsStorableDataReadShowNumBoundedEnumIxRealIntegralEqOrdIArrayMArrayEqPprDataShowTypeableMonadMonadFunctor ApplicativeShowReadEnumIxOrdEqEqShowEqShowQuasiMonadFix ApplicativeFunctorMonadShowEqShowEqShowDataEqShowDataEqShowTypeableIxBoundedShowReadEnumOrdEqPprDataEqShowTypeablePprDataEqShowTypeable PrintfArgStorableDataEqOrdNumReal FractionalRealFracFloating RealFloatShowEnumReadIArrayMArrayDataShowEqTypeableDataShowEqTypeableFoldableFunctor Traversable ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqEqPprDataEqShowTypeableShowReadOrdEqShowEqEqFunctorFoldable Traversable HasResolution HasResolutionTypeableShow PrintfArgStorableDataEqOrdNumReal FractionalFloatingRealFrac RealFloatShowEnumReadIArrayMArrayShowFoldableFunctor TraversablePprDataEqShowTypeableTypeableDataShowShowEqShowEqShowEqReadShowEnumOrdEqTypeablePprDataEqShowTypeable Typeable1PprDataEqShowTypeableLift PrintfArgIsCharStorableDataReadShowBoundedEnumIxEqOrdIArrayMArray Typeable1DataEqShowTypeable ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeable RealFloatRealFracFloating FractionalRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableRealStorableEnumNumOrdEq ReadShowTypeableBitsIntegralBoundedRealStorableEnumNumOrdEqEqShowReadOrdEq LiftStorableDataReadShowBoundedEnumIxOrdEqIArrayMArrayDataEqShowTypeableShowOrdEqShowOrdEqIArrayShowOrdEqMonoidBoundedShowReadOrdEqMonoidBoundedShowReadOrdEqArrow ArrowChoice ArrowApply ArrowLoop MonoidDataReadShowBoundedEnumIxEqOrd2ZBodyQ <Bounds; ByteCount;CDir;CDirent;CFLock;CGroup;CLconv;CPasswd; CSigaction;CSigset;CStat;CString; CStringLen;CTermios;CTm;CTms;CUtimbuf;CUtsname;CWStringq; CWStringLenU;ClauseQG; ClockTick>;ConIndex8;ConQ-;Cxt ;CxtQ;DecQ;DeviceID: DiffArray: DiffUArray:Doc:Edge: EpochTime:ExpQ:FD:FieldExpx: FieldExpQ`:FieldPatM: FieldPatQ5:FileID.:FileMode&: FileOffset:FilePath:FinalizerEnvPtr9 FinalizerPtr9Forest9Generic9GenericB9GenericM9GenericQy9GenericRn9GenericTe9GraphK9GuardQ>9HandlePosition49IOError&9IPr9InfoQ9Key9Limit8 ListUArray8MatchQ8Micro8ModName8OccName8PatQ8Pico|8PkgNamem8Precg8 Precedencea8ProcessGroupIDZ8 ProcessIDS8RangeQF8Rational38 RawBuffer8ReadS7STRep7 SampleVar7ShowS{7StmtQo7 StrictTypeY7 StrictTypeQ>7String17Table7TypeQ7Uniq 7 VarStrictType6VarStrictTypeQ6Vertex6IntQ(,,)NameStrictType(,,)NameStrictTypeIntQTypeaArrayInta[]CharQ(,)StrictType(,)StrictTypeQStmt[]Char[]CharaMVar(,)IntMVarasaState#s(#,#)State#saa[]Char[](,)a[]CharMutableByteArray# RealWorldRatioIntegerQRangeCPidCPidIntInt PackedStringFixedE12QPat PackedString PackedStringFixedE6QMatche(,)ii[]eUArrayieCLongIntQInfo(,)IntInt IOExceptionIntegerQGuardArrayInt[]Intaammararmamaacacaa[]TreeaaFunPtrPtraIO()envaFunPtrPtrenvPtraIO()[]CharCOffCModeCInoQ(,)NamePat(,)NamePatQ(,)NameExp(,)NameExpCIntQExpCTime(,)IntIntPprMDoc IOToDiffArrayIOUArray IOToDiffArrayIOArrayCDevQDecQ[]Type[]TypeQConIntCClockQClause(,)PtrCWcharIntPtrCWchar()()()()()(,)PtrCCharIntPtrCChar()()()()()()()()()CSize(,)IntIntQBody([:'[abDcHdef}g{hxiojokSolkmgnbo^p)YqXrRs3Jt3EuBvy@w=z<i<g<p<l<i<s<t<ZipListz<a<g<m<o=d =e=Mode #o@1U@3;@6!@8@e?i?o>rJ=a=iV=t]=ed=b=h=mu=o|=d=e=IOModea=n=d=l=e= HandleTypeu=f=f=e=r= BufferStatep>a>m>p>e>d#>aa>m/>o6>n=>aD>dK> WrappedMonadrh>ro>ov>w}> WrappedArrowo>n>a>d> WrappedMonadr>r>o>w> WrappedArrowr>d>Word#?1?3?6W?8H?p)?t0?r7?WordPtrWord84^?Word64#s?Word64#2?Word326?Word16Word#l?d?p?Pata?k?Weak#@Weak##@Word84(@#/@Word642B@#I@Word326\@#c@Word16WordaAe@i@e@w@l@r@ViewRViewLr@s@t@e@x@Vertexi@oAnAVersionlBr%AeAiAnApAsOAtEATypetVAr]AidAckAtrAtyAyApAeA VarStrictTypeqAVarStrictTypeQPataAmAeA NameSpaceInfoExpd BDecaEnBpjBs(Be/Br6Be=BrDBrKBoRBrYB IOErrorTypepqBexBrBcBaBsBeBlBeBtBtBeBrBGeneralCategorydcDiDsBaxCuBpBpCo CrCtCe!Cd(Co/Cp6Ce=CrDCaKCtRCiYCo`CngC IOErrorTypef DtCiCsCfCiCeCdCcCoCnCsCtCrCaCiCnCtCsC IOErrorTypeeDSafetyq9Dt+DUnitUniquLDeSDUniqueejDfDrvDf}DlDoDwDArithExceptioniDnDeDdDeDlDeDmDeDnDtDArrayExceptionrErEaEy#EUArray aJcIe{IhHiGr`GuGvGybEcFpEsEvxEaErEiEInfoyEnEdEDeceETypeaFqErEeEpETypeRepTypeQbFlFeFTypeable1F2F3F4F5wF6dF7QF Typeable7 Typeable6 Typeable5 Typeable4 Typeable3 Typeable2 Typeable1oFnFTyConiFInfoa GrGTVarp%GeWGl?Gp6GPateFGtMGTypeExpaGeGuqGexGBooleGTreevGeGrGsGaGbGlGeG TraversablelHm^HtGlGeHc HaHsHeHl&He-Ht4Ht;HeBHrIHGeneralCategoryeeHelHxsHpzHiHrHeHdH IOErrorTypedHeHpHPatrHeHaHdHiJIkIsHaHfIeISafetyiIl!Il(Ie/Id6IAsyncExceptiondQIThreadId#hI ThreadId#xItIdIeItIaIiIlIsI TextDetailscIlIsInIaImIeJ NameSpacebJlJe$JTable #RaQc|QeoPhPiOpOt5KuJygJmJssJtzJeJmJeJrJrJoJrJ IOErrorTypebJoJlJLexemem(KrJrJoJgJaKt KeKGeneralCategorySumSTaMdMm{MoMrKuKydKlkKerKStyleaKrKrKaKyKSTUArray TextDetailseLiKcYLnKgKStringc'LlLrLe LpLDataRepLito.Ln5Ls]e\i\kZ\o>\p\rYsYtwYu]YndYckYLexemer~YPtrtYrY TextDetailse[iZoYcBZdZtYoYcYoYlYeYrYrYoZr Z IOErrorTypeu#Zc*Zt1ZProducteIZsPZsWZg}ZicZdjZ ProcessIDrZoZuZpZiZdZProcessGroupIDms[n[vZaZtZeZuZsZeZGeneralCategoryt[f[aR[t)[y0[p7[e>[ PrintfTyperY[g`[ PrintfArgtz[y[c[o[n[i[Infoc[f[i[x[FixityPrece[d[e[n[c[e\ Precedencer\Pprm0\PprMoE\lL\Poolga\nh\ao\mv\e}\PkgNamec\o\Picor\m\i\u\t\e\ArgOrders\s\i\o\n]d ]e]n]i]e&]d-] IOErrorTypec^gy^r]tT]Patg]q]tp]ew]r~]n]m]a]t]c]h]f]a]i]l] ExceptionPatQGuarda^s]Stmtg ^r^a^p^h%^s,^e3^p:^aA^rH^aO^tV^o]^rd^GeneralCategorye^m^o^d^e^Modek^e^d^s^t^r^i^n^g^ PackedStringOpaquebbcnbn%bpar`th_v*_e1_r8_f?_lF_oM_wT_ArithExceptionho_ev_r}_e`lc`n+`p_s_y_m_b_o_l_GeneralCategoryu_n_c_t_u_a_t`i`o`n`GeneralCategoryu2`m9`b@`eG`rN`GeneralCategoryej`tq`tx`e`r`GeneralCategoryr`r`o`r` IOErrorTyped`Orde`r`i`n`g`Orderingabeat aa{adMai1ao8an?aOptDescreTas[acbariaOptDescrragaArgDescrnapauanacatauaaataiaoanaGeneralCategoryqbubebOpaquee,bl3bi:bnAbeHbmOboVbd]bedbModecubn|babmbebOccNamejbebcbtbObjectafefobubmbNumaebedem*enndrdsct"cachbcs3ct:crAciHccOctVcStrictiicnpcgwcMaybescscicgcncecdcGeneralCategoryuccchctchcicncgd IOErrorTypeeZdmda$dl+dbPdcGdgptEprLpiSpcxpn_pgfpIsStringtpStricthpaprpIsCharrpIPrIOaireqmqrqt#qupaprprqa qyqIOUArrayo*qd1qi8qf?qfFqaMqrTqr[qabqyiq IOToDiffArrayeqfqIORefoqdqeqIOModerrxqcqeqpqtqiqoqnq IOExceptionrro"rr)rIOErrort?ryFrpMreTr IOErrorTyperprrwra~ryrIOArray awdvfuiulurwusDut*svrarlrirdrarrrgrurmse snsts IOErrorTypeInt #6u1 u3 u6t8tctetmspsrssnseust|sIntSetespsDataReprstsrsIntPtrismslsLitaspsIntMapgMtrtrtu tp'tt.te5tdinpqtsוtTyperolGeneralCategorycŕ ConsoleEvento-tConstrConstrr ep ConstrRepl4e;eBvIePnWt^ ConsoleEventConQPatectorpunÖcʖtіuؖaߖtionGeneralCategorynde%x,ConIndexExpeNExpp^eljeqxxComplexExpfCOffodeCModeazcUd locŘnse ConsoleEventdupu!n(c/t6u=aDtKiRoYn`GeneralCategoryh|andle HandleTypegCLongk̘tӘiژck ClockTickon gCLLongo'u.b5l<eCCLDoubleo\ncvjCLconvsuseClauseqClauseQsdioҙpٙiInfoInfoDecmp buf CJmpBufn8otDCIntm{p\tcrjCIntPtraxCIntMaxCInoaŚr TextDetailsnrњChar#lLitChar#Chanrou$p+CGroupilipLoSsZCFposopac|kCFLocktCFloatleCFilee>io؛uߛbleCDoubler CDiren&t-CDirentvECDevahldokcrkyCClockarCCharllCallconvlstӜcڜhHandlereeExpl con!v(CallconvChari͠loruydtkerac~ount ByteCountrrayɝ#Н ByteArray#fferBufferlymPst&a-t4e; BufferStateoWd^ee BufferModeist BufferListcʞnil BufferListoўn؞sߞ BufferListeak ConsoleEventd~oiu'n.d5eQsABoundsdXBoundedlpBoolyBodyqBodyQockbeȟdϟi)o۟ndeadmv ar Exceptionn0d7e>fEiLnSiZtaehloyv Exceptionuffering BufferModent٠sBitsdsStmtbc^d:lnprs0p syAnHcOeVx]cdekprtyionAsyncExceptionerti¡oɡnСfסaޡiled ExceptionPatgir#ao/w6ArrowaRclm¢ptzheorvo} ArrowZeroTypelus ArrowPlusoɢnТaעdޢ ArrowMonadoop ArrowLooph!o(i/c6e= ArrowChoicepYp`lgyn ArrowApplyyArray#exceptţịoӣnڣArrayExceptionArray#t he:se#q*e1ExpxAcHeOpVt]idoknrArithExceptiondĤorderArgOrdereˤsҤc٤rArgDescrperlt Typeic:e'd.NameIsaAtHiOvVe] ApplicativeExpndhmodeIOModean¥dɥlХeץ HandleTypeyAnyglԦorcter$n+a2t9i@vGeN Alternativeejaqdxyexists IOErrorTypeneȦNameIsAllcrepDataReponst$r+ ConstrRepdArH#OAddr#yecllsizcsccSCCsolut§eɧsЧeקeާkSeekMode: ][]:][::]*G+3:::+::N:*:)b()r *nűBodyACallconvClausehConfDec qponExpkib`FixityFixityDirectionForeignzxFunDepeGuardlInfo}Int Lit|Z?MatchName[YW NameFlavour NameIs  NameSpace  PackedString^]\Pat jRangeSafetyStmtaRStrictTypegType[]Type(,)()Qu()mvBodyQE$BoolPprMChar[]ClauseQIConQcDecQ y1#"! DocPprM!~{wtrm_SDB>ExpQUTLJHFC830/.('%GuardQN+InfoQInfomMatchQ2NameQVNamemXPatQ K765RangeQ,*)StmtQQG4-StrictQTypeQd:aQ;ams<bQ=PatExpQName(,)QTypeStrictName(,,)QExpGuard(,)QM&ExpName(,)QPatName(,)QTypeStrict(,)Q9Char[]MaybeChar[]QChar[]mDocPprM[]Type[]QOa[]QPPat[]NameName(,)[](,)@PatNameName(,)[](,)Q[ 7^ܺA-bQa=BodywhBoolwvutCallconvzyxChar|{ConpfDec}Double~Expi`FixityFixityDirectionFloatForeignInt YInt#IntegerLitName6zyxponC7#"! NameFlavourNameIs NameSpace PackedStringPat RangeSafetyzyTypezxqgatTypeStrictName(,,)TypeStrict(,)Type[]Type(,)BodyQI21Char[]zyxvu^]\[ZYXWWWVUTSClause[]ConQc!Con[]nDecMaybeDec[]qoha`_DocPprM tExpMaybeExpQMJF430/.-,+**)))(((''&&%$Exp[]bFunDep[]o#IntegerRatio?>Match[]Name[]pponngfeedc#""!!PatQ 77654321Pat[]jihRangeQ8Stmt[]lkStrictQ9TypeQ yd::96. Type[]qponmgfaIOaQ=<;;a[]ramssTypeStrictName(,,)[]ExpGuard(,)[]AExpName(,)[]BNameName(,)[]CPatName(,)[]TypeStrict(,)QTypeStrict(,)[] ClauseQ[]ConQ[]"DecQ[]IGF21# DocPprM[]DExpQMaybeExpQ[]HMatchQ[]0PatQ[]KJIStmtQ[]NMLStmt[][]RTypeQ[]OType[]Qdc#"! aQ[]PTypeStrictName(,,)Q[]ExpGuard(,)Q[]EExpName(,)Q[]/PatName(,)Q[]TypeStrict(,)Q[]StmtQ[][]QPatNameName(,)[](,)[]@sV<_H1"sXI:&p<p\A"gF1" oH3^D(~lR7q\B/ ubO6#ybK<-whY?0! }n_8$k\H*xdF&r_H9* u[A'rgTE, LifttPpraString!ShowaDocPpraDoc Doc* &9n (LoExpQOccNameModNamePkgNameStringOccNameStringModNameStringModNamePkgName StringDoc35I"P-/W RDoc(*NQuasim*,GHDecQTypeQ]jString+-PatQ^kClauseQDecQConQVarStrictTypeQConQ StrictTypeQ  FieldPatQPatQ ExpQ VarStrictType StrictType FieldPat FieldExp#DecQTypeQ.0XTypeQ PatQDN FieldPatQPatQSPatQBKExpQ)a+pOExpQU StrictTypeQVarStrictTypeQDocStringPatQExpQuvwxDoc?Doc Precedence>ADoc PrecedenceGQDoc Precedence@TypeQDocDocDoc PrecedenceO[SDoc$R^U[agXd&(FieldExpDoc?DocDDocfxStringP\DecQStringTypeQ?GStringDocQuasimStringStringDocQuasimPpraDocsCxtCxtCxt46CxtCxtDoc#9%=B{ LXCxtKVCxt`mnMYCxtQTypeQWConQCxtQ<}ZDocPkgNameStringOccNameStringModNameStringString45StringStringUniqQuasimStringStringString=CString3ExpQString7DocStringStmtQ13CxtQTypeQGuardQStmtQExpQStmtQ$:&>ExpQStmtQCPatQ|ExpQPatQ! BodyQClauseQDecQPatQ=ExpQDecQStmtQ~DecQExpQdsBodyQIivwYDocExpQDoccr# ;<IJ@ATURationalDocRational Quasim  TypeQ1 StrictTypeQTypeQ ExpQRangeQoPatQ'PatQTypeQ:PatQ ExpQPatQStmtQzExpQPatQBodyQDecQMatchQPatQMBodyQDecQPatQExpQMatchQExpQ%ExpQTypeQExpQStmtQS_ExpQRangeQExpQGuardQV\bhExpQRangeQYeExpQRangeQ'Wg)czExpQ TZ`fExpQExpQQ]ExpQBodyQExpQCxtQDecQ57ConQCxtQDecQConQCxtQDecQtCxtQDecQTypeQi|ConQuDocDocDocB;DocDocj}k~ExpQQuasimDocDoch{ StrictTypeDoc y8K[86Qy Precedencelmp8;+,QuasimStringTypeQ\PatQ/1String "$DE)DoclV0uR<dR8$_A+mG/ [?)_;%eGS(Z8UAkO;'gK/nT"v^F xO9^@$z\@ jL6"V'kS;qS, `D,z^8xf>"tX<d>u]7{]?P8[C%e?}eKoU/h?wildpIWildP[wildP\ where_clausey where_clauseZvcatvcatYvartVarTWvarTXvarstricttypeqVarStrictTypeQV varstricttype VarStrictTypeT varStrictTypeUvarp8VarPRvarPSvarnameaVarNameQvarixVarIPvareVarENvarEOvaldValDLvalDMunsafeUnsafeKuniqUniqJtyvariTyVarIItysynd*TySynDGtySynDHtypeqUTypeQFtypenTypeEtyconiTyConIDtuppTupPBtupPC tupletypename tupleTypeNameAtupletTupleT?tupleT@ tupledataname' tupleDataName>tupeHTupE<tupE= to_hpj_doct to_HPJ_Doc;tildepTildeP9tildeP: threadsafe Threadsafe8thTHtexttext7template-haskelltemplate-haskell tcclsname3 TcClsName6syntaxNSyntaxstringlgStringL4stringL5stringestringE3 stricttypeq StrictTypeQ2 stricttype StrictType0 strictType1strict Strict/stmtq(StmtQ.stmtAStmt-stdcall\StdCall+stdCall,splitsplit*spacespace) simplematch simpleMatch(sigpSigP&sigP'sigeSigE$sigE%sigd"SigD"sigD# showtextlM showtextl! showname'k showName' shownameshowName sequenceq sequenceQsepsepsemisemisectionrsectionRsectionlsectionLsafety&Safetysafe@SafesaferunqfrunQruniorunIOrparenrparenreturnqreturnQreportreportrenamerenamereifyreifyrecupdeRecUpdErecUpdErecpGRecP recP recoverprecover recconeRecConE recConE reccRecCrecCrbrackrbrackrbracerbrace rationall RationalL rationalLrationalIrationalrangeqcRangeQrange~RangequotesquotesquasiQuasiqrunioqRunIOqreportqReportqreifyqReifyqrecoverqRecoverqnewname/qNewNameqcurrentmoduleQqCurrentModuleqlQ punctuate punctuateptextptext primtyconi PrimTyConI precedence PrecedencepprvarstricttypepprVarStrictTypepprtyapp)pprTyApp pprstricttypeJ pprStrictTypepprpatipprPat pprparendtype pprParendTypepprname'pprName'pprnamepprName pprmaybeexp pprMaybeExppprmPprMpprlitpprLitpprlib7PprLibpprintOpprint pprinfixexpp pprInfixExp pprfixity pprFixity pprfields pprFieldspprexppprExppprcxtpprCxtpprbodypprBodyppr_listppr_listppr4Pprppr pkgstringa pkgStringpkgname}PkgNamepatqPatQpatgepatGEpatgPatGpatGpatPatparsParSparSparensif,parensIfparensFparensopprec^opPrec occstringy occStringoccnameOccName notstrict NotStrict notStrictnormalgenormalGEnormalgNormalGnormalGnormalc3NormalCnormalCnormalbbNormalBnormalBnobindsNoBindSnoBindSnewtypedNewtypeDnewtypeDnewnamenewName nestdepth nestDepthnest+nestnameu@NameU namespaceZ NameSpacenamestNameSnameqNameQ namemodule nameModulenamelNameLnameisNameIsnamegNameG nameflavour NameFlavournamebase-nameBasenameIName modstringj modStringmodnameModName mkpkgname mkPkgName mkoccname mkOccNamemknameumkNameUmknamelmkNameL mknameg_tc mkNameG_tcmkname/mkName mkmodnameN mkModName maxprecedencep maxPrecedencematchqMatchQmatchMatchmatchlparenlparenlitpLitPlitPliteLitElitElitALitlisttYListTlistTlistpListPlistPlisteListElistEliftLiftliftlibLibletsLetSletSlete)LetE}letE~lbrackQlbracklbraceilbracelameLamE{lamE|lam1elam1EzisstrictIsStrictyisemptyisEmptyintprimlIntPrimLwintPrimLxintegerl/IntegerLuintegerLvinteger`integerintvint instanced InstanceDs instanceDtinfoqInfoQrinfoInfoqinfixrInfixRpinfixpInfixPninfixPoinfixn:InfixNminfixlVInfixLlinfixerInfixEj}infixEk~infixcInfixCh{infixCi|infixappinfixAppgzinfixInfixyimportfImportFfxhsephsepwhcat0hcatvhangDhanguguardqZGuardQetguardedbxGuardedBcrguardedBdsguardGuardbqglobalglobalapgenpatgenpatofundepFunDep_`lmfunDepnfund$FunD]jfunD^kfsepJfsepifromtoraFromToR[gfromToR\hfromtoefromToEZf fromthentor FromThenToRXd fromThenToRYe fromthentoe fromThenToEWc fromthenr FromThenRUa fromThenRVb fromtheneF fromThenET`fromrdFromRR^fromRS_fromefromEQ]forimpdforImpDP\foreigndForeignDO[foreignForeignNZforalltForallTLXforallTMYforallc4ForallCKVforallCW floatprimlb FloatPrimLIT floatPrimLJUfloatfloatSfixitydirectionFixityDirectionHRfixityFixityFGPQ fieldpatq FieldPatQEOfieldpat"FieldPatCMfieldPatDN fieldexpqU FieldExpQLfieldexprFieldExpAJfieldExpBKfcatfcatIexpqExpQ@HexportfExportF?GexpExp>FequalsequalsEemptyemptyDdyn-dyn=C doublequotesL doubleQuotesB doubleprimlo DoublePrimL;@ doublePrimL<Adoubledouble?doeDoE9=doE:>docDoc< defaultfixity defaultFixity8;decqDecQ7:dec1Dec69datanameLDataName8datadeDataD46dataD57dataconiDataConI35cxtqCxtQ24cxtCxt02cxt13 currentmodule currentModule/1contConT-/conT.0conq8ConQ,.conpPConP*,conP+-conevConE(*conE)+condeCondE&(condE')conCon%'compeCompE#%compE$&commacomma$combinecombine#colon5colon"clauseqMClauseQ"!clausejClause clause! classopiClassOpIclassiClassIclassdClassDclassDcharlCharLcharLchar-charccallBCCallcatZcatcaseenCaseEcaseEcallconvCallconvbracketsbracketsbracesbracesbodyqBodyQbodyBodybindsBindS bindS bindqFbindQ aspZAsP asP arrowtArrowT arrowT arithseqe ArithSeqE  arithSeqE apptAppT appT appseappsEapplied"Appliedappe9AppEappEalpha`alphaalonevAlone<><><+><+>$+$$+$$$$$\]b+e 9ECuInhV<nFS)5-96sW-U5 LUOC'gm }7S#Q#00V"~2EYE1[=7g=W ۾W˽GügݺɹqŸGŷoE4 Rija+ƱTԯj ,03GϪA?^}Mߥq CۣyˢY cfƟv"Ξvĝpd'3uQ`v"ҕHwxђLD`$"G݌x`~։8&^ n>ׄɃ)͂-a9a~{~#~}O}|{{]{'{zzNzyyeddclcb3baqa``_^^C^]I]\\\ \z[0[ZzZZYfYXX,XWVW WVZVUUu>K>===<<(<;;7;:}: :9&98g877<76x665-54.43h33:221*1000/7/.~.P..-V-,,b,+b+*Z*)w)(('h'&n&&%##M##"s""!Y!   NR'o6.1;OKE9rBOix $     x > wildPwildP :: PatQt m PatQWildPWildP :: Pat  Pat where_clause where_clause :: [Dec] -> Doc  []DecDocvcatvcat :: [Doc] -> Docd Q []DocDocList version of $$ varTvarT :: Name -> TypeQ  NameTypeQVarTVarT :: Name -> Type  NameTypeVarStrictTypeQtype VarStrictTypeQ = Q VarStrictTypet  varStrictType varStrictType :: Name ->  StrictTypeQ -> VarStrictTypeQ Name StrictTypeQVarStrictTypeQ VarStrictTypetype  VarStrictType = (Name, Strict, Type)evarPvarP :: Name -> PatQNamePatQVarPVarP :: Name -> PatNamePatVarNameVarName ::  NameSpaceK? NameSpaceVarI VarI :: Name -> Type ->  Maybe Dec -> Fixity -> InfoNameTypeMaybeDecFixityInfovarEvarE :: Name -> ExpQ>/NameExpQVarEVarE :: Name -> Exp~NameExpvalD valD :: PatQ -> BodyQ -> [DecQ] -> DecQPatQBodyQ[]DecQDecQValD ValD :: Pat -> Body -> [Dec] -> DecrPatBody[]DecDecUnsafeUnsafe :: SafetySafetyUniqtype Uniq = IntTyVarITyVarI :: Name -> Type -> InfonYNameTypeInfotySynD tySynD :: Name -> [Name] -> TypeQ -> DecQName[]NameTypeQDecQTySynD TySynD :: Name -> [Name] -> Type -> Dec~^Name[]NameTypeDecTypeQtype TypeQ = Q TypeTypedata TypeTyConITyConI :: Dec -> Info5'DecInfotupPtupP :: [PatQ] -> PatQx[]PatQPatQTupPTupP :: [Pat] -> Pat[]PatPat tupleTypeName tupleTypeName :: Int -> NameA3IntNametupleTtupleT :: Int -> TypeQIntTypeQTupleTTupleT :: Int -> TypeIntType tupleDataName tupleDataName :: Int -> NameG9IntNametupEtupE :: [ExpQ] -> ExpQ[]ExpQExpQTupETupE :: [Exp] -> Exp[]ExpExp to_HPJ_Doc to_HPJ_Doc :: Doc -> DocK>DocDoctildePtildeP :: PatQ -> PatQPatQPatQTildePTildeP :: Pat -> PatPatPat Threadsafe Threadsafe :: Safety7.Safetytexttext :: String -> DocyStringDoc TcClsName TcClsName ::  NameSpace NameSpacestringLstringL :: String -> Lit-StringLitStringLStringL :: String -> LituStringLitstringEstringE :: String -> ExpQStringExpQ StrictTypeQtype  StrictTypeQ = Q StrictType* strictType strictType :: Q Strict -> TypeQ ->  StrictTypeQQStrictTypeQ StrictTypeQ StrictTypetype  StrictType = (Strict, Type)Strictdata Strict2StmtQtype StmtQ = Q StmtkStmtdata StmtstdCallstdCall :: CallconvCallconvStdCallStdCall :: Callconv#Callconvsplitsplit :: Type -> (Type, [Type])pType(,)Type[]Typespacespace :: DocDocA space character  simpleMatch simpleMatch :: Pat -> Exp -> MatchN:PatExpMatchsigPsigP :: PatQ -> TypeQ -> PatQPatQTypeQPatQSigPSigP :: Pat -> Type -> PatPatTypePatsigEsigE :: ExpQ -> TypeQ -> ExpQjExpQTypeQExpQSigESigE :: Exp -> Type -> ExpExpTypeExpsigDsigD :: Name -> TypeQ -> DecQJ4NameTypeQDecQSigDSigD :: Name -> Type -> DecNameTypeDec showtextl showtextl ::  Show a => a -> Doc ShowaaDoc showName' showName' :: NameIs -> Name -> String t NameIsNameStringshowNameshowName :: Name -> String  NameString sequenceQ sequenceQ :: [Q a] -> Q [a]U!6![]QaQ[]asepsep :: [Doc] -> Doc!![]DocDocEither hsep or vcat semisemi :: Doc!!DocA ';' character sectionRsectionR :: ExpQ -> ExpQ -> ExpQo"Z"ExpQExpQExpQsectionLsectionL :: ExpQ -> ExpQ -> ExpQ""ExpQExpQExpQSafetydata Safety #safesafe :: SafetyI#@#SafetySafeSafe :: Safety#|#SafetyrunQrunQ ::  Quasi m => Q a -> m a##QuasimQamarunIOrunIO :: IO a -> Q aD$0$IOaQaThe runIO function lets you run an I/O computation in the Q monad. Take care: you are guaranteed the ordering of calls to runIO within a single Q computation, but not about the order in which splices are run. Note: for various murky reasons, stdout and stderr handles are not necesarily flushed when the compiler finishes running, so you should flush them yourself. rparenrparen :: Doc &&DocA ')' character returnQreturnQ :: a -> Q aj&\&aQareportreport :: Bool -> String -> Q ()&&BoolStringQ()renamerename :: Pat -> Q ([(Name, Name)], Pat)d'2'PatQ(,)[](,)NameNamePatreifyreify :: Name -> Q Info''NameQInfo8reify looks up information about the Name recUpdErecUpdE :: ExpQ -> [Q (Name, Exp)] -> ExpQ(W(ExpQ[]Q(,)NameExpExpQRecUpdERecUpdE :: Exp ->  [FieldExp] -> Exp((Exp[]FieldExpExprecPrecP :: Name ->  [FieldPatQ] -> PatQs)S)Name[] FieldPatQPatQRecPRecP :: Name ->  [FieldPat] -> Pat))Name[]FieldPatPatrecoverrecover :: Q a -> Q a -> Q aV*;*QaQaQarecConErecConE :: Name -> [Q (Name, Exp)] -> ExpQ**Name[]Q(,)NameExpExpQRecConERecConE :: Name ->  [FieldExp] -> Exp^+@+Name[]FieldExpExprecCrecC :: Name -> [VarStrictTypeQ] -> ConQ++Name[]VarStrictTypeQConQRecCRecC :: Name -> [VarStrictType] -> Con^,;,Name[] VarStrictTypeConrbrackrbrack :: Doc,,DocA ']' character rbracerbrace :: Doc,,DocA '}' character  rationalL rationalL :: Rational -> LitR-@-RationalLit RationalL RationalL :: Rational -> Lit--RationalLitrationalrational :: Rational -> Doc.-RationalDocRangeQtype RangeQ = Q RangeL.Rangedata Rangez.quotesquotes :: Doc -> Doc..DocDoc Wrap document in '...' Quasiclass (Monad m, Functor m) => Quasi m3/qRunIOqRunIO ::  Quasi m => IO a -> m a//QuasimIOamaqReportqReport ::  Quasi m => Bool -> String -> m (),00QuasimBoolStringm()qReifyqReify ::  Quasi m => Name -> m Info0~0QuasimNamemInfoqRecoverqRecover ::  Quasi m => m a -> m a -> m a&10QuasimmamamaqNewNameqNewName ::  Quasi m => String -> m Name1~1QuasimStringmNameqCurrentModuleqCurrentModule ::  Quasi m => m String21QuasimmStringQdata Q a62 punctuate punctuate :: Doc -> [Doc] -> [Doc]22Doc[]Doc[]Doc`
punctuate p [d1, ... dn] = [d1 <> p, d2 <> p, ... dn-1 <> p, dn]
ptextptext :: String -> Docd3T3StringDoc PrimTyConI  PrimTyConI :: Name -> Int -> Bool -> Info33NameIntBoolInfo Precedencetype  Precedence = Int*4pprVarStrictTypepprVarStrictType :: (Name, Strict, Type) -> Doc44(,,)NameStrictTypeDocpprTyApppprTyApp :: (Type, [Type]) -> Doc)55(,)Type[]TypeDoc pprStrictType pprStrictType :: (Strict, Type) -> Doc55(,)StrictTypeDocpprPatpprPat ::  Precedence -> Pat -> Doc65 PrecedencePatDoc pprParendType pprParendType :: Type -> Doct6f6TypeDocpprName'pprName' :: NameIs -> Name -> Doc66NameIsNameDocpprNamepprName :: Name -> Doc87*7NameDoc pprMaybeExp pprMaybeExp ::  Precedence ->  Maybe Exp -> Doc77 PrecedenceMaybeExpDocPprMdata PprM a7pprLitpprLit ::  Precedence -> Lit -> Docc8J8 PrecedenceLitDocpprintpprint ::  Ppr a => a -> String88PpraaString pprInfixExp pprInfixExp :: Exp -> Doc"99ExpDoc pprFixity pprFixity :: Name -> Fixity -> Doc9~9NameFixityDoc pprFields pprFields ::  [(Name, Exp)] -> Doc:9[](,)NameExpDocpprExppprExp ::  Precedence -> Exp -> Docy:`: PrecedenceExpDocpprCxtpprCxt :: Cxt -> Doc::CxtDocpprBodypprBody :: Bool -> Body -> Doc3;;BoolBodyDocppr_listppr_list ::  Ppr a => [a] -> Doc;;Ppra[]aDocpprppr ::  Ppr a => a -> Doc;;PpraaDocPprclass Ppr a$< pkgString pkgString :: PkgName -> String<t<PkgNameStringPkgNametype PkgName = PackedString<PatQtype PatQ = Q Pat=patGEpatGE :: [StmtQ] -> ExpQ -> Q (Guard, Exp)=a=[]StmtQExpQQ(,)GuardExppatGpatG :: [StmtQ] -> GuardQ==[]StmtQGuardQPatGPatG :: [Stmt] -> GuardG>1>[]StmtGuardPatdata Patq>parSparS ::  [[StmtQ]] -> StmtQ>>[][]StmtQStmtQParSParS :: [[Stmt]] -> Stmt5??[][]StmtStmtparensIfparensIf :: Bool -> Doc -> Doc??BoolDocDocparensparens :: Doc -> Doc??DocDoc Wrap document in (...) opPrecopPrec ::  PrecedenceW@J@ Precedence occString occString :: OccName -> String@@OccNameStringOccNametype OccName = PackedString@ notStrict notStrict :: Q StrictKA=AQStrict NotStrict NotStrict :: StrictAAStrictnormalGEnormalGE :: ExpQ -> ExpQ -> Q (Guard, Exp)BAExpQExpQQ(,)GuardExpnormalGnormalG :: ExpQ -> GuardQuBdBExpQGuardQNormalGNormalG :: Exp -> GuardBBExpGuardnormalCnormalC :: Name ->  [StrictTypeQ] -> ConQMC+CName[] StrictTypeQConQNormalCNormalC :: Name ->  [StrictType] -> ConCCName[] StrictTypeConnormalBnormalB :: ExpQ -> BodyQ#DDExpQBodyQNormalBNormalB :: Exp -> BodywDiDExpBodynoBindSnoBindS :: ExpQ -> StmtQDDExpQStmtQNoBindSNoBindS :: Exp -> Stmt#EEExpStmtnewtypeDnewtypeD :: CxtQ -> Name -> [Name] -> ConQ -> [Name] -> DecQEECxtQName[]NameConQ[]NameDecQNewtypeDNewtypeD :: Cxt -> Name -> [Name] -> Con -> [Name] -> DecFmFCxtName[]NameCon[]NameDecnewNamenewName :: String -> Q NameFFStringQName nestDepth nestDepth :: Int>G8GIntnestnest :: Int -> Doc -> DocGGIntDocDocNested NameUNameU :: Int# ->  NameFlavourHGInt# NameFlavour NameSpacedata  NameSpace;HNameSNameS ::  NameFlavourHuH NameFlavourNameQNameQ :: ModName ->  NameFlavourHHModName NameFlavour nameModule nameModule :: Name ->  Maybe StringXI>INameMaybeStringNameLNameL :: Int# ->  NameFlavourIIInt# NameFlavourNameIsdata NameIsINameG NameG ::  NameSpace -> PkgName -> ModName ->  NameFlavourJ]J NameSpacePkgNameModName NameFlavour NameFlavourdata  NameFlavourJnameBasenameBase :: Name -> String KKNameStringNameName :: OccName ->  NameFlavour -> NameK{KOccName NameFlavourNameNamedata NameK modString modString :: ModName -> String*LLModNameStringModNametype ModName = PackedStringmL mkPkgName mkPkgName :: String -> PkgNameLLStringPkgName mkOccName mkOccName :: String -> OccName5M!MStringOccNamemkNameUmkNameU :: String -> Uniq -> NameMMStringUniqNamemkNameLmkNameL :: String -> Uniq -> NameNMStringUniqName mkNameG_tc  mkNameG_tc :: String -> String -> String -> NameNNStringStringStringNamemkNamemkName :: String -> NameONStringName mkModName mkModName :: String -> ModNameeOQOStringModName maxPrecedence maxPrecedence :: IntOOIntMatchQtype MatchQ = Q MatchOmatch match :: PatQ -> BodyQ -> [DecQ] -> MatchQuPQPPatQBodyQ[]DecQMatchQMatch Match :: Pat -> Body -> [Dec] -> MatchPPPatBody[]DecMatchMatchdata Match'Qlparenlparen :: DocaQ[QDocA '(' character litPlitP :: Lit -> PatQQQLitPatQLitPLitP :: Lit -> Pat RQLitPatlitElitE :: Lit -> ExpQYRKRLitExpQLitELitE :: Lit -> ExpRRLitExpLitdata LitRlistTlistT :: TypeQ SSTypeQListTListT :: TypeES>STypelistPlistP :: [PatQ] -> PatQSS[]PatQPatQListPListP :: [Pat] -> PatSS[]PatPatlistElistE :: [ExpQ] -> ExpQOT:T[]ExpQExpQListEListE :: [Exp] -> ExpTT[]ExpExpliftlift ::  Lift t => t -> Q Exp UTLiftttQExpLiftclass Lift t8UletSletS :: [DecQ] -> StmtQU|U[]DecQStmtQLetSLetS :: [Dec] -> StmtUU[]DecStmtletEletE :: [DecQ] -> ExpQ -> ExpQVV;V[]DecQExpQExpQLetELetE :: [Dec] -> Exp -> ExpVV[]DecExpExplbracklbrack :: DocVVDocA '[' character lbracelbrace :: DocBW ExpQ -> ExpQWW[]PatQExpQExpQLamELamE :: [Pat] -> Exp -> Exp(XX[]PatExpExplam1Elam1E :: PatQ -> ExpQ -> ExpQX{XPatQExpQExpQIsStrictIsStrict :: StrictXXStrictisEmptyisEmpty :: Doc ->  PprM Bool5YYDocPprMBool-Returns True if the document is empty intPrimLintPrimL :: Integer -> LitYYIntegerLitIntPrimLIntPrimL :: Integer -> LitZ ZIntegerLitintegerLintegerL :: Integer -> LitvZeZIntegerLitIntegerLIntegerL :: Integer -> LitZZIntegerLitintegerinteger :: Integer -> Doc,[[IntegerDocintint :: Int -> Docv[i[IntDoc instanceD  instanceD :: CxtQ -> TypeQ -> [DecQ] -> DecQ\[CxtQTypeQ[]DecQDecQ InstanceD  InstanceD :: Cxt -> Type -> [Dec] -> Dec\p\CxtType[]DecDecInfoQtype InfoQ = Q Info\Infodata Info\InfixRInfixR :: FixityDirectionE]3]FixityDirectioninfixP infixP :: PatQ -> Name -> PatQ -> PatQ]]PatQNamePatQPatQInfixP InfixP :: Pat -> Name -> Pat -> Pat?^'^PatNamePatPatInfixNInfixN :: FixityDirection^^FixityDirectionInfixLInfixL :: FixityDirection^^FixityDirectioninfixE infixE ::  Maybe ExpQ -> ExpQ ->  Maybe ExpQ -> ExpQ_T_MaybeExpQExpQMaybeExpQExpQInfixE InfixE ::  Maybe Exp -> Exp ->  Maybe Exp -> Exp`_MaybeExpExpMaybeExpExpinfixC infixC :: Q (Strict, Type) -> Name -> Q (Strict, Type) -> ConQ``Q(,)StrictTypeNameQ(,)StrictTypeConQInfixC InfixC ::  StrictType -> Name ->  StrictType -> ConmaGa StrictTypeName StrictTypeConinfixApp infixApp :: ExpQ -> ExpQ -> ExpQ -> ExpQaaExpQExpQExpQExpQInfixInfix :: NameIs/b&bNameIsImportFImportF :: Callconv -> Safety -> String -> Name -> Type -> ForeignbbCallconvSafetyStringNameTypeForeignhsephsep :: [Doc] -> DocGc4c[]DocDoc!List version of <+> hcathcat :: [Doc] -> Doccc[]DocDoc List version of <> hang hang :: Doc -> Int -> Doc -> DocPd9dDocIntDocDoc0
hang d1 n d2 = sep [d1, nest n d2]
GuardQtype GuardQ = Q GuarddguardedBguardedB :: [Q (Guard, Exp)] -> BodyQ:ee[]Q(,)GuardExpBodyQGuardedBGuardedB :: [(Guard, Exp)] -> Bodyee[](,)GuardExpBodyGuarddata Guardeglobalglobal :: Name -> ExpQ1f"fNameExpQgenpatgenpat :: Pat -> Q (Name -> ExpQ, Pat)ffPatQ(,)NameExpQPatfunDepfunDep :: [Name] -> [Name] -> FunDep+gg[]Name[]NameFunDepFunDepFunDep :: [Name] -> [Name] -> FunDepgg[]Name[]NameFunDepFunDepdata FunDepgfunDfunD :: Name ->  [ClauseQ] -> DecQMh/hName[]ClauseQDecQFunDFunD :: Name -> [Clause] -> DechhName[]ClauseDecfsepfsep :: [Doc] -> Docih[]DocDoc "Paragraph fill" version of sep fromToRfromToR :: ExpQ -> ExpQ -> RangeQiiExpQExpQRangeQFromToRFromToR :: Exp -> Exp -> Range jiExpExpRangefromToEfromToE :: ExpQ -> ExpQ -> ExpQwjbjExpQExpQExpQ fromThenToR  fromThenToR :: ExpQ -> ExpQ -> ExpQ -> RangeQkjExpQExpQExpQRangeQ FromThenToR  FromThenToR :: Exp -> Exp -> Exp -> RangekrkExpExpExpRange fromThenToE  fromThenToE :: ExpQ -> ExpQ -> ExpQ -> ExpQlkExpQExpQExpQExpQ fromThenR fromThenR :: ExpQ -> ExpQ -> RangeQlrlExpQExpQRangeQ FromThenR FromThenR :: Exp -> Exp -> RangellExpExpRange fromThenE fromThenE :: ExpQ -> ExpQ -> ExpQgmRmExpQExpQExpQfromRfromR :: ExpQ -> RangeQmmExpQRangeQFromRFromR :: Exp -> RangennExpRangefromEfromE :: ExpQ -> ExpQanRnExpQExpQforImpDforImpD :: Callconv -> Safety -> String -> Name -> TypeQ -> DecQ!onCallconvSafetyStringNameTypeQDecQForeignDForeignD :: Foreign -> Dec}oloForeignDecForeigndata ForeignoforallT forallT :: [Name] -> CxtQ -> TypeQ -> TypeQ=pp[]NameCxtQTypeQTypeQForallT ForallT :: [Name] -> Cxt -> Type -> Typepp[]NameCxtTypeTypeforallC forallC :: [Name] -> CxtQ -> ConQ -> ConQOq.q[]NameCxtQConQConQForallC ForallC :: [Name] -> Cxt -> Con -> Conqq[]NameCxtConCon floatPrimL floatPrimL :: Rational -> Lit5r#rRationalLit FloatPrimL FloatPrimL :: Rational -> LitrrRationalLitfloatfloat :: Float -> DocrrFloatDocFixityDirectiondata FixityDirection+sFixityFixity :: Int -> FixityDirection -> FixityssIntFixityDirectionFixityFixitydata Fixitys FieldPatQtype  FieldPatQ = Q FieldPat"tfieldPatfieldPat :: Name -> PatQ ->  FieldPatQttNamePatQ FieldPatQFieldPattype FieldPat = (Name, Pat)t FieldExpQtype  FieldExpQ = Q FieldExp#ufieldExpfieldExp :: Name -> ExpQ ->  Q (Name, Exp)uuNameExpQQ(,)NameExpFieldExptype FieldExp = (Name, Exp)ufcatfcat :: [Doc] -> DocCv0v[]DocDoc "Paragraph fill" version of cat ExpQtype ExpQ = Q ExpvExportF ExportF :: Callconv -> String -> Name -> Type -> ForeignCwwCallconvStringNameTypeForeignExpdata Expmwequalsequals :: DocwwDocA '=' character emptyempty :: DocwwDocAn empty document dyndyn :: String -> Q ExpXxCxStringQExp doubleQuotes doubleQuotes :: Doc -> DocxxDocDoc Wrap document in "..."  doublePrimL doublePrimL :: Rational -> Lit8y&yRationalLit DoublePrimL DoublePrimL :: Rational -> LityyRationalLitdoubledouble :: Double -> DocyyDoubleDocdoEdoE :: [StmtQ] -> ExpQJz4z[]StmtQExpQDoEDoE :: [Stmt] -> Expzz[]StmtExpDoctype Doc = PprM Docz defaultFixity defaultFixity :: Fixity#{{FixityDecQtype DecQ = Q DecY{Decdata Dec{DataNameDataName ::  NameSpace{{ NameSpacedataDdataD :: CxtQ -> Name -> [Name] -> [ConQ] -> [Name] -> DecQ|V|CxtQName[]Name[]ConQ[]NameDecQDataDDataD :: Cxt -> Name -> [Name] -> [Con] -> [Name] -> DecK}}CxtName[]Name[]Con[]NameDecDataConI DataConI :: Name -> Type -> Name -> Fixity -> Info}}NameTypeNameFixityInfoCxtQtype CxtQ = Q Cxt~cxtcxt :: [TypeQ] -> CxtQw~a~[]TypeQCxtQCxttype Cxt = [Type]~ currentModule currentModule :: Q String~QString\currentModule gives you the name of the module in which this computation is spliced. conTconT :: Name -> TypeQNameTypeQConTConT :: Name -> TypeNameTypeConQtype ConQ = Q Con5conPconP :: Name -> [PatQ] -> PatQName[]PatQPatQConPConP :: Name -> [Pat] -> Pat Name[]PatPatconEconE :: Name -> ExpQ]NNameExpQConEConE :: Name -> ExpNameExpcondE condE :: ExpQ -> ExpQ -> ExpQ -> ExpQ)ExpQExpQExpQExpQCondE CondE :: Exp -> Exp -> Exp -> ExpExpExpExpExpCondata ConɂcompEcompE :: [StmtQ] -> ExpQ%[]StmtQExpQCompECompE :: [Stmt] -> Exp}i[]StmtExpcommacomma :: DocDocA ',' character combinecombine :: [([(Name, Name)], Pat)] -> ([(Name, Name)], [Pat])2[](,)[](,)NameNamePat(,)[](,)NameName[]Patcoloncolon :: DocÄDocA ':' character ClauseQtype ClauseQ = Q Clauseclause clause :: [PatQ] -> BodyQ -> [DecQ] -> ClauseQ[]PatQBodyQ[]DecQClauseQClause Clause :: [Pat] -> Body -> [Dec] -> Clause:[]PatBody[]DecClauseClausedata ClausejClassOpI ClassOpI :: Name -> Type -> Name -> Fixity -> InfoNameTypeNameFixityInfoClassIClassI :: Dec -> InfoZLDecInfoclassDclassD :: CxtQ -> Name -> [Name] -> [FunDep] -> [DecQ] -> DecQ"CxtQName[]Name[]FunDep[]DecQDecQClassDClassD :: Cxt -> Name -> [Name] -> [FunDep] -> [Dec] -> DecCxtName[]Name[]FunDep[]DecDeccharLcharL :: Char -> Lit4&CharLitCharLCharL :: Char -> LitvCharLitcharchar :: Char -> Doc҉ĉCharDocCCallCCall :: Callconv Callconvcatcat :: [Doc] -> DocfS[]DocDocEither hcat or vcat caseEcaseE :: ExpQ -> [MatchQ] -> ExpQъExpQ[]MatchQExpQCaseECaseE :: Exp -> [Match] -> Exp\BExp[]MatchExpCallconvdata Callconvbracketsbrackets :: Doc -> Doc׋DocDoc Wrap document in [...] bracesbraces :: Doc -> DocTGDocDoc Wrap document in {...} BodyQtype BodyQ = Q BodyBodydata BodyٌbindSbindS :: PatQ -> ExpQ -> StmtQC-PatQExpQStmtQBindSBindS :: Pat -> Exp -> StmtPatExpStmtbindQbindQ :: Q a ->  (a -> Q b) -> Q bQaaQbQbasPasP :: Name -> PatQ -> PatQmNamePatQPatQAsPAsP :: Name -> Pat -> PatώNamePatPatarrowTarrowT :: TypeQ TypeQArrowTArrowT :: Type\UType arithSeqE arithSeqE :: RangeQ -> ExpQRangeQExpQ ArithSeqE ArithSeqE :: Range -> ExpRangeExpappTappT :: TypeQ -> TypeQ -> TypeQhTypeQTypeQTypeQAppTAppT :: Type -> Type -> TypeѐTypeTypeTypeappsEappsE :: [ExpQ] -> ExpQ@+[]ExpQExpQAppliedApplied :: NameIsyNameIsappEappE :: ExpQ -> ExpQ -> ExpQӑExpQExpQExpQAppEAppE :: Exp -> Exp -> ExpH6ExpExpExpalphaalpha :: [(Name, Name)] -> Name -> ExpQ͒[](,)NameNameNameExpQAloneAlone :: NameIs NameIs<> (<>) :: Doc -> Doc -> Docm[DocDocDocBeside <+> (<+>) :: Doc -> Doc -> DocؓƓDocDocDocBeside, separated by space $+$ ($+$) :: Doc -> Doc -> DocWEDocDocDocAbove, without dovetailing. $$ ($$) :: Doc -> Doc -> DocՔÔDocDocDoc5Above; if there is no overlap it "dovetails" the two wildPwildP :: PatQD=PatQWildPWildP :: Pat|vPatvarTvarT :: Name -> TypeQΕNameTypeQVarTVarT :: Name -> TypeNameTypeVarStrictTypeQtype VarStrictTypeQ = Q VarStrictTyper varStrictType varStrictType :: Name ->  StrictTypeQ -> VarStrictTypeQ Name StrictTypeQVarStrictTypeQvarPvarP :: Name -> PatQ\MNamePatQVarPVarP :: Name -> PatNamePatVarI VarI :: Name -> Type ->  Maybe Dec -> Fixity -> InfoM"NameTypeMaybeDecFixityInfovarEvarE :: Name -> ExpQNameExpQVarEVarE :: Name -> ExpݘNameExpvalD valD :: PatQ -> BodyQ -> [DecQ] -> DecQqOPatQBodyQ[]DecQDecQValD ValD :: Pat -> Body -> [Dec] -> DecљPatBody[]DecDecUnsafeUnsafe :: Safety/&SafetyTyVarITyVarI :: Name -> Type -> InfoNameTypeInfotySynD tySynD :: Name -> [Name] -> TypeQ -> DecQ#Name[]NameTypeQDecQTySynD TySynD :: Name -> [Name] -> Type -> DecName[]NameTypeDecTypeQtype TypeQ = Q TypeTypedata TypeTyConITyConI :: Dec -> Info`RDecInfotupPtupP :: [PatQ] -> PatQ[]PatQPatQTupPTupP :: [Pat] -> Pat []PatPat tupleTypeName tupleTypeName :: Int -> Namel^IntNametupleTtupleT :: Int -> TypeQIntTypeQTupleTTupleT :: Int -> TypeIntType tupleDataName tupleDataName :: Int -> NamerdIntNametupEtupE :: [ExpQ] -> ExpQʞ[]ExpQExpQTupETupE :: [Exp] -> Exp []ExpExptildePtildeP :: PatQ -> PatQrcPatQPatQTildePTildeP :: Pat -> PatŸPatPat Threadsafe Threadsafe :: Safety SafetystringLstringL :: String -> LitbRStringLitStringLStringL :: String -> LitStringLitstringEstringE :: String -> ExpQStringExpQ StrictTypeQtype  StrictTypeQ = Q StrictType_ strictType strictType :: Q Strict -> TypeQ ->  StrictTypeQȡQStrictTypeQ StrictTypeQStrictdata StrictStmtQtype StmtQ = Q StmtUStmtdata StmtstdCallstdCall :: CallconvǢCallconvStdCallStdCall :: Callconv CallconvsigPsigP :: PatQ -> TypeQ -> PatQu_PatQTypeQPatQSigPSigP :: Pat -> Type -> PatףģPatTypePatsigEsigE :: ExpQ -> TypeQ -> ExpQ?)ExpQTypeQExpQSigESigE :: Exp -> Type -> ExpExpTypeExpsigDsigD :: Name -> TypeQ -> DecQ NameTypeQDecQSigDSigD :: Name -> Type -> DecmYNameTypeDecsectionRsectionR :: ExpQ -> ExpQ -> ExpQۥƥExpQExpQExpQsectionLsectionL :: ExpQ -> ExpQ -> ExpQI4ExpQExpQExpQSafetydata Safetyysafesafe :: SafetySafetySafeSafe :: SafetySafetyrunQrunQ ::  Quasi m => Q a -> m aZ;QuasimQamarunIOrunIO :: IO a -> Q aIOaQaThe runIO function lets you run an I/O computation in the Q monad. Take care: you are guaranteed the ordering of calls to runIO within a single Q computation, but not about the order in which splices are run. Note: for various murky reasons, stdout and stderr handles are not necesarily flushed when the compiler finishes running, so you should flush them yourself. reportreport :: Bool -> String -> Q ()BoolStringQ()reifyreify :: Name -> Q InfoNameQInfo8reify looks up information about the Name recUpdErecUpdE :: ExpQ -> [Q (Name, Exp)] -> ExpQ˪ExpQ[]Q(,)NameExpExpQRecUpdERecUpdE :: Exp ->  [FieldExp] -> ExpC&Exp[]FieldExpExprecPrecP :: Name ->  [FieldPatQ] -> PatQName[] FieldPatQPatQRecPRecP :: Name ->  [FieldPat] -> Pat/Name[]FieldPatPatrecoverrecover :: Q a -> Q a -> Q aQaQaQarecConErecConE :: Name -> [Q (Name, Exp)] -> ExpQ,Name[]Q(,)NameExpExpQRecConERecConE :: Name ->  [FieldExp] -> ExpName[]FieldExpExprecCrecC :: Name -> [VarStrictTypeQ] -> ConQ(Name[]VarStrictTypeQConQRecCRecC :: Name -> [VarStrictType] -> ConName[] VarStrictTypeCon rationalL rationalL :: Rational -> LitRationalLit RationalL RationalL :: Rational -> LitfTRationalLitRangeQtype RangeQ = Q RangeRangedata RangeЯQdata Q a PrimTyConI  PrimTyConI :: Name -> Int -> Bool -> Info~dNameIntBoolInfopprPatpprPat ::  Precedence -> Pat -> Docװ PrecedencePatDoc pprParendType pprParendType :: Type -> DocPBTypeDocpprLitpprLit ::  Precedence -> Lit -> Doc± PrecedenceLitDocpprintpprint ::  Ppr a => a -> String'PpraaStringpprExppprExp ::  Precedence -> Exp -> Doc PrecedenceExpDocppr_listppr_list ::  Ppr a => [a] -> DocPpra[]aDocpprppr ::  Ppr a => a -> Doc]HPpraaDocPprclass Ppr aPatQtype PatQ = Q PatpatGEpatGE :: [StmtQ] -> ExpQ -> Q (Guard, Exp)N []StmtQExpQQ(,)GuardExppatGpatG :: [StmtQ] -> GuardQ[]StmtQGuardQPatGPatG :: [Stmt] -> Guard[]StmtGuardPatdata Pat0parSparS ::  [[StmtQ]] -> StmtQw[][]StmtQStmtQParSParS :: [[Stmt]] -> Stmtٵ[][]StmtStmt notStrict notStrict :: Q StrictA3QStrict NotStrict NotStrict :: Strict~StrictnormalGEnormalGE :: ExpQ -> ExpQ -> Q (Guard, Exp)ExpQExpQQ(,)GuardExpnormalGnormalG :: ExpQ -> GuardQkZExpQGuardQNormalGNormalG :: Exp -> GuardExpGuardnormalCnormalC :: Name ->  [StrictTypeQ] -> ConQC!Name[] StrictTypeQConQNormalCNormalC :: Name ->  [StrictType] -> ConName[] StrictTypeConnormalBnormalB :: ExpQ -> BodyQ ExpQBodyQNormalBNormalB :: Exp -> Bodym_ExpBodynoBindSnoBindS :: ExpQ -> StmtQŹExpQStmtQNoBindSNoBindS :: Exp -> Stmt ExpStmtnewtypeDnewtypeD :: CxtQ -> Name -> [Name] -> ConQ -> [Name] -> DecQٺCxtQName[]NameConQ[]NameDecQNewtypeDNewtypeD :: Cxt -> Name -> [Name] -> Con -> [Name] -> DeccCxtName[]NameCon[]NameDecnewNamenewName :: String -> Q Name޻StringQName nameModule nameModule :: Name ->  Maybe StringcINameMaybeStringnameBasenameBase :: Name -> StringNameStringNamedata NamemkNamemkName :: String -> NameC2StringName maxPrecedence maxPrecedence :: IntIntMatchQtype MatchQ = Q Matchǽmatch match :: PatQ -> BodyQ -> [DecQ] -> MatchQS/PatQBodyQ[]DecQMatchQMatch Match :: Pat -> Body -> [Dec] -> Match׾PatBody[]DecMatchMatchdata MatchlitPlitP :: Lit -> PatQSELitPatQLitPLitP :: Lit -> PatLitPatlitElitE :: Lit -> ExpQ߿LitExpQLitELitE :: Lit -> Exp9,LitExpLitdata LitclistTlistT :: TypeQTypeQListTListT :: TypeTypelistPlistP :: [PatQ] -> PatQ3[]PatQPatQListPListP :: [Pat] -> Patv[]PatPatlistElistE :: [ExpQ] -> ExpQ[]ExpQExpQListEListE :: [Exp] -> Exp9&[]ExpExpletSletS :: [DecQ] -> StmtQ}[]DecQStmtQLetSLetS :: [Dec] -> Stmt[]DecStmtletEletE :: [DecQ] -> ExpQ -> ExpQW<[]DecQExpQExpQLetELetE :: [Dec] -> Exp -> Exp[]DecExpExplamElamE :: [PatQ] -> ExpQ -> ExpQ-[]PatQExpQExpQLamELamE :: [Pat] -> Exp -> Exp}[]PatExpExplam1Elam1E :: PatQ -> ExpQ -> ExpQPatQExpQExpQIsStrictIsStrict :: StrictA8StrictintPrimLintPrimL :: Integer -> LitIntegerLitIntPrimLIntPrimL :: Integer -> LitIntegerLitintegerLintegerL :: Integer -> LitUDIntegerLitIntegerLIntegerL :: Integer -> LitIntegerLit instanceD  instanceD :: CxtQ -> TypeQ -> [DecQ] -> DecQACxtQTypeQ[]DecQDecQ InstanceD  InstanceD :: Cxt -> Type -> [Dec] -> DecCxtType[]DecDecInfoQtype InfoQ = Q InfoInfodata Info.InfixRInfixR :: FixityDirectionnFixityDirectioninfixP infixP :: PatQ -> Name -> PatQ -> PatQPatQNamePatQPatQInfixP InfixP :: Pat -> Name -> Pat -> PatzbPatNamePatPatInfixNInfixN :: FixityDirectionFixityDirectionInfixLInfixL :: FixityDirection FixityDirectioninfixE infixE ::  Maybe ExpQ -> ExpQ ->  Maybe ExpQ -> ExpQMaybeExpQExpQMaybeExpQExpQInfixE InfixE ::  Maybe Exp -> Exp ->  Maybe Exp -> ExpR)MaybeExpExpMaybeExpExpinfixC infixC :: Q (Strict, Type) -> Name -> Q (Strict, Type) -> ConQQ(,)StrictTypeNameQ(,)StrictTypeConQInfixC InfixC ::  StrictType -> Name ->  StrictType -> Con StrictTypeName StrictTypeConinfixApp infixApp :: ExpQ -> ExpQ -> ExpQ -> ExpQ,ExpQExpQExpQExpQImportFImportF :: Callconv -> Safety -> String -> Name -> Type -> ForeignCallconvSafetyStringNameTypeForeignGuardQtype GuardQ = Q Guard,guardedBguardedB :: [Q (Guard, Exp)] -> BodyQ[]Q(,)GuardExpBodyQGuardedBGuardedB :: [(Guard, Exp)] -> Body[](,)GuardExpBodyGuarddata GuardMglobalglobal :: Name -> ExpQNameExpQFunDepFunDep :: [Name] -> [Name] -> FunDep[]Name[]NameFunDepFunDepdata FunDepOfunDfunD :: Name ->  [ClauseQ] -> DecQName[]ClauseQDecQFunDFunD :: Name -> [Clause] -> Dec3Name[]ClauseDecfromToRfromToR :: ExpQ -> ExpQ -> RangeQExpQExpQRangeQFromToRFromToR :: Exp -> Exp -> Range ExpExpRangefromToEfromToE :: ExpQ -> ExpQ -> ExpQydExpQExpQExpQ fromThenToR  fromThenToR :: ExpQ -> ExpQ -> ExpQ -> RangeQExpQExpQExpQRangeQ FromThenToR  FromThenToR :: Exp -> Exp -> Exp -> RangetExpExpExpRange fromThenToE  fromThenToE :: ExpQ -> ExpQ -> ExpQ -> ExpQExpQExpQExpQExpQ fromThenR fromThenR :: ExpQ -> ExpQ -> RangeQtExpQExpQRangeQ FromThenR FromThenR :: Exp -> Exp -> RangeExpExpRange fromThenE fromThenE :: ExpQ -> ExpQ -> ExpQiTExpQExpQExpQfromRfromR :: ExpQ -> RangeQExpQRangeQFromRFromR :: Exp -> RangeExpRangefromEfromE :: ExpQ -> ExpQcTExpQExpQforImpDforImpD :: Callconv -> Safety -> String -> Name -> TypeQ -> DecQ#CallconvSafetyStringNameTypeQDecQForeignDForeignD :: Foreign -> DecnForeignDecForeigndata ForeignforallT forallT :: [Name] -> CxtQ -> TypeQ -> TypeQ?[]NameCxtQTypeQTypeQForallT ForallT :: [Name] -> Cxt -> Type -> Type[]NameCxtTypeTypeForallC ForallC :: [Name] -> Cxt -> Con -> ConK-[]NameCxtConCon floatPrimL floatPrimL :: Rational -> LitRationalLit FloatPrimL FloatPrimL :: Rational -> LitRationalLitFixityDirectiondata FixityDirectionQFixityFixity :: Int -> FixityDirection -> FixityIntFixityDirectionFixityFixitydata Fixity FieldPatQtype  FieldPatQ = Q FieldPatHfieldPatfieldPat :: Name -> PatQ ->  FieldPatQNamePatQ FieldPatQFieldPattype FieldPat = (Name, Pat)fieldExpfieldExp :: Name -> ExpQ ->  Q (Name, Exp)fNameExpQQ(,)NameExpFieldExptype FieldExp = (Name, Exp)ExpQtype ExpQ = Q ExpExportF ExportF :: Callconv -> String -> Name -> Type -> ForeignCallconvStringNameTypeForeignExpdata Expdyndyn :: String -> Q Exp1StringQExp doublePrimL doublePrimL :: Rational -> LitRationalLit DoublePrimL DoublePrimL :: Rational -> LitRationalLitdoEdoE :: [StmtQ] -> ExpQQ;[]StmtQExpQDoEDoE :: [Stmt] -> Exp[]StmtExp defaultFixity defaultFixity :: FixityFixityDecQtype DecQ = Q Dec)Decdata DecSdataDdataD :: CxtQ -> Name -> [Name] -> [ConQ] -> [Name] -> DecQCxtQName[]Name[]ConQ[]NameDecQDataDDataD :: Cxt -> Name -> [Name] -> [Con] -> [Name] -> DecCxtName[]Name[]Con[]NameDecDataConI DataConI :: Name -> Type -> Name -> Fixity -> InfooLNameTypeNameFixityInfoCxtQtype CxtQ = Q Cxtcxtcxt :: [TypeQ] -> CxtQ[]TypeQCxtQCxttype Cxt = [Type]2 currentModule currentModule :: Q StringyQString\currentModule gives you the name of the module in which this computation is spliced. conTconT :: Name -> TypeQ5%NameTypeQConTConT :: Name -> TypevNameTypeConQtype ConQ = Q ConconPconP :: Name -> [PatQ] -> PatQ)Name[]PatQPatQConPConP :: Name -> [Pat] -> PatzName[]PatPatconEconE :: Name -> ExpQNameExpQConEConE :: Name -> Exp1#NameExpcondE condE :: ExpQ -> ExpQ -> ExpQ -> ExpQExpQExpQExpQExpQCondE CondE :: Exp -> Exp -> Exp -> Exp%ExpExpExpExpCondata ConOcompEcompE :: [StmtQ] -> ExpQ[]StmtQExpQCompECompE :: [Stmt] -> Exp[]StmtExpClauseQtype ClauseQ = Q ClauseBclause clause :: [PatQ] -> BodyQ -> [DecQ] -> ClauseQ[]PatQBodyQ[]DecQClauseQClause Clause :: [Pat] -> Body -> [Dec] -> ClausejC[]PatBody[]DecClauseClausedata ClauseClassOpI ClassOpI :: Name -> Type -> Name -> Fixity -> Info8NameTypeNameFixityInfoClassIClassI :: Dec -> Info|DecInfoclassDclassD :: CxtQ -> Name -> [Name] -> [FunDep] -> [DecQ] -> DecQRCxtQName[]Name[]FunDep[]DecQDecQClassDClassD :: Cxt -> Name -> [Name] -> [FunDep] -> [Dec] -> DecCxtName[]Name[]FunDep[]DecDeccharLcharL :: Char -> LitdVCharLitCharLCharL :: Char -> LitCharLitCCallCCall :: CallconvCallconvcaseEcaseE :: ExpQ -> [MatchQ] -> ExpQjMExpQ[]MatchQExpQCaseECaseE :: Exp -> [Match] -> ExpExp[]MatchExpCallconvdata Callconv BodyQtype BodyQ = Q BodyEBodydata BodyqbindSbindS :: PatQ -> ExpQ -> StmtQPatQExpQStmtQBindSBindS :: Pat -> Exp -> Stmt?,PatExpStmtasPasP :: Name -> PatQ -> PatQNamePatQPatQAsPAsP :: Name -> Pat -> PatNamePatPatarrowTarrowT :: TypeQA9TypeQArrowTArrowT :: Type}vType arithSeqE arithSeqE :: RangeQ -> ExpQRangeQExpQ ArithSeqE ArithSeqE :: Range -> Exp5&RangeExpappTappT :: TypeQ -> TypeQ -> TypeQTypeQTypeQTypeQAppTAppT :: Type -> Type -> TypeTypeTypeTypeappsEappsE :: [ExpQ] -> ExpQaL[]ExpQExpQappEappE :: ExpQ -> ExpQ -> ExpQExpQExpQExpQAppEAppE :: Exp -> Exp -> Exp'ExpExpExpTHmodule Language.Haskell.TH^template-haskellpackage template-haskellHFacilities for manipulating Haskell source code using Template Haskell. Syntaxmodule Language.Haskell.TH.Syntax'2Abstract syntax definitions for Template Haskell. PprLibmodule Language.Haskell.TH.PprLibPprmodule Language.Haskell.TH.PprLibmodule Language.Haskell.TH.Lib}aH/LanguageHaskellTHLibLanguageHaskellTHPprLanguageHaskellTHPprLibLanguageHaskellTHLanguageHaskellTHSyntaxtemplate-haskell2.2.0.0Nhttp://hackage.haskell.org/packages/archive/template-haskell/2.2.0.0/doc/html/Khttp://hackage.haskell.org/cgi-bin/hackage-scripts/package/template-haskell