w:_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~portable experimentallibraries@haskell.orgportable experimentallibraries@haskell.org uThe 3 constructor represents a list comprehension, and  takes a []1. The result expression of the comprehension is & the *last* of these, and should be a .  E.g. [ f x | x <- xs ] is represented by D CompE [BindS (VarP x) (VarE xs), NoBindS (AppE (VarE f) (VarE x))] vwx{      !"#$%&'()*+,-./01234567899 looks up information about the - :: gives you the Location at which this  computation is spliced. ;The ; function lets you run an I/O computation in the x monad. 8 Take care: you are guaranteed the ordering of calls to ; within  a single xB computation, but not about the order in which splices are run. DNote: for various murky reasons, stdout and stderr handles are not G necesarily flushed when the compiler finishes running, so you should  flush them yourself. <=>?@ABCDEFGHIJK uvwx{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK/012345.<x6789:;-CDFG! uvw{     KJ',+*)(#&%$" EIHAB=>?@ uvwx{ -         !  !"#&%$$%&',+*)(()*+,-./0123450123456789:;<=>?@ABCDEFGHIJK  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^abcdefghijklmnopqrstyz|}~LMNOPQRSTUVWXYZ[\]^_`ab  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^abcdefghijklmnopqrstyz|}~LMNOPQRSTUVWXYZ[\]^_`abQyzP|}ON~ML  ]t9:;<RSTU87V[W\XY !"#$%&'Z()*+,-[./012345\6>=A?@BCDUijmanbcdEghHIJMNOPQSTRsGFKLopqrWVYZXkl^fe]^_`ab  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^abcdefghijklmnopqrstyz|}~LMNOPQRSTUVWXYZ[\]^_`ab_`cdeff converts a value to a 'Q Exp' representation of the same ; value. It takes a function to handle type-specific cases. gg converts a value to a 'Q Pat' representation of the same ; value. It takes a function to handle type-specific cases. _`cdefgcd_`efg_`cd_`defg0hijklmReturns  if the document is empty nAn empty document oA ';' character pA ',' character qA : character rA space character sA '=' character tA '(' character uA ')' character vA '[' character wA ']' character xA '{' character yA '}' character z{|}~Wrap document in (...) Wrap document in [...] Wrap document in {...} Wrap document in '...' Wrap document in "..." Beside List version of  Beside, separated by space List version of  Above; if there is no  overlap it " dovetails" the two Above, without dovetailing. List version of  Either hcat or vcat Either hsep or vcat "Paragraph fill" version of cat "Paragraph fill" version of sep Nested  !hang d1 n d2 = sep [d1, nest n d2] punctuate p [d1, ... dn] = [d1 <> p, d2 <> p, ... dn-1 <> p, dn]-hijklmnopqrstuvwxyz{|}~-hinopqrstuvwxyz|{}~mljk-hijklmnopqrstuvwxyz{|}~"""")  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLNOPQRSTUVWXYZ[\]abcdefghijklnstuvwxyz{|}~     6789:;CDHIJKLMNOPQRSTUVWXYZ[\a)x6789:;CDIHuvw{     KJQyzP|}ON~ML   ]t9:;<RSTU87V[W\XY !"#$%&'Z()*+,-[a./012345\6>=A?@BCDUijanbcdEghHIJNOPQSTRsFGKLVWXYZklef      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aabcdefghijklmnopqrstuvwxyz{|}~ftemplate-haskellLanguage.Haskell.TH.SyntaxLanguage.Haskell.TH.LibLanguage.Haskell.TH.Quote$Language.Haskell.TH.Syntax.InternalsLanguage.Haskell.TH.PprLibLanguage.Haskell.TH.PprLanguage.Haskell.THreturnQbindQ sequenceQliftnewNamemkName mkNameG_v mkNameG_d mkNameG_tcmkNameLcharLstringLintegerLintPrimL wordPrimL floatPrimL doublePrimL rationalLlitPvarPtupPconPtildePasPwildPrecPlistPsigPfieldPatmatchclausevarEconElitEappEinfixEinfixAppsectionLsectionRlamEtupEcondEletEcaseEdoEcompEfromE fromThenEfromToE fromThenToElistEsigErecConErecUpdEfieldExpguardedBnormalBbindSletSnoBindSparSfunDvalDdataDnewtypeDtySynDclassD instanceDsigDcxtisStrict notStrictnormalCrecCinfixC strictType varStrictTypeforallCforallTvarTconTappTtupleTarrowTlistTforImpDcCallstdCallunsafesafe threadsafenormalGEpatGEinfixPfunDepquoteExpquotePat familyNoKindD dataInstD newtypeInstD tySynInstDtypeFamdataFamclassPequalPpragInlD pragSpecDinlineSpecNoPhaseinlineSpecPhase pragSpecInlD familyKindDplainTVkindedTVstarKarrowKsigTbangPExpMatchClauseQExpQDecQPatMatchQClauseQStmtQConQTypeQTypeDecVarStrictTypeQ StrictTypeQFieldExpFieldPatNamePatQ FieldPatQ FieldExpQFunDepPredPredQ TyVarBndrOccNamePkgNameModNameKindArrowKStarKKindedTVPlainTVSigTAppTListTArrowTTupleTConTVarTForallT VarStrictType StrictTypeConForallCInfixCRecCNormalCStrict NotStrictIsStrictEqualPClassPCxt InlineSpecPragma SpecialisePInlinePSafety ThreadsafeSafeUnsafeCallconvStdCallCCallForeignExportFImportF FamFlavourDataFamTypeFam TySynInstD NewtypeInstD DataInstDFamilyDPragmaDForeignDSigD InstanceDClassDTySynDNewtypeDDataDValDFunDRange FromThenToRFromToR FromThenRFromRStmtParSNoBindSLetSBindSGuardPatGNormalGBodyNormalBGuardedBRecUpdERecConESigEListE ArithSeqECompEDoECaseELetECondETupELamEInfixEAppELitEConEVarESigPListPRecPWildPAsPBangPTildePInfixPConPTupPVarPLitPLit DoublePrimL FloatPrimL WordPrimLIntPrimL RationalLIntegerLStringLCharLFixityDirectionInfixNInfixRInfixLFixityInfoTyVarIVarIDataConI PrimTyConITyConIClassOpIClassICharPosLoc loc_filename loc_package loc_module loc_startloc_endNameIsInfixAppliedAloneUniq NameSpace TcClsNameDataNameVarName NameFlavourNameGNameLNameUNameQNameSLiftQuasiqNewNameqReportqRecoverqReify qLocationqRunIOrunQreportrecoverreifylocationrunIO liftString mkModName modString mkPkgName pkgString mkOccName occStringnameBase nameModulemkNameUshowName showName' tupleDataName tupleTypeName maxPrecedence defaultFixity InlineSpecQRangeQGuardQBodyQCxtQInfoQfromR fromThenRfromToR fromThenToRnormalGpatGdyngloballam1E arithSeqEstringEcombinerenamegenpatalphaappsE simpleMatch QuasiQuoterdataToQa dataToExpQ dataToPatQDocPprMpprNamepprName' to_HPJ_DocisEmptyemptysemicommacolonspaceequalslparenrparenlbrackrbracklbracerbracetextptextcharintintegerfloatdoublerationalparensbracketsbracesquotes doubleQuotes<>hcat<+>hsep$$$+$vcatcatsepfcatfsepnesthang punctuatePprpprppr_list Precedence nestDepthappPrecopPrecnoPrecparensIfpprintppr_sig pprFixity pprInfixExppprExp pprFields pprMaybeExppprBodypprLitpprPatppr_decppr_data ppr_newtype ppr_tySynppr_activationpprVarStrictType pprStrictType pprParendTypepprTyApp pprFunArgTypesplitpprArrowArgKindpprCxt where_clause showtextlunQbadIOcountertrueName falseName nothingNamejustNameleftName rightName con_NameS con_NameQ con_NameU con_NameL con_NameGty_NameFlavourmkNameG mk_tup_namecmpEqthenCmprunPprMStateghc-primGHC.BoolTrue