HOOGcJH#'rr0244vvooww34 ppWW6ppWW8<<MMVW9_WWa"%))-.3:==?AEKM_bbddffhhlmpsvxz{}  -/13468::=@BCGGIJLPRiopstvvxx{|   "TWWbb 357;;BBJKMMffhhwwyy   **,,./55DDKPXXefijqq{{  %&((++66==RRbb{{    -.78BBDDFFHHJJNNRRUUc #%4     !''-/11==@LNORfjkmmrrv ""$378>?BBDGVXaacgnruuww|~d 288;;??BBEFM^ccfmtw}} #&'--235588=@CDJJLLOORfmnqsxxzz    ##%&(066;;=>@@DDGILLSSVVXY``bbe ""%&((02779:>KMNQTVVXY^^`fimoprrtw!##%(*688::==?DJKNPRRWXZZ`cefhhlsz{~~ VXXZ[]^Tf%%()++;;??ABDDFGIINNQQbbn  =BBDDHHMMWWYY``ccqqzz||~~--//88:>GGVX``ddiistxy}}  ##%%g ))..3466::?BGGQQYY^_o   -1178;;>RYZddggopssvv||   "255>>DGPPSTV^jjlluuJhQ ##**--4499=DHHTTZZnny|   ""::EKS  !''<=LLQRaafgoovwyy  &&,-22@NRRYYi !367;<??ADFFKKMNPPRRUUWWZZ\]_eghllo #%%''))+/113399;;==?ACDFFHHJKNNPPVW^^`affiiklnnqqzz "#%&*0j  kL**>BHHnn|| !--34@@BCGGOOSfooqs}}  $2=>AADGMMV^ffii   "&&**,,..FFRRTTl !357;;ABEKMNQQTU`fhhoqvz}}  $/7:==??BDLQXZ\_aaiillnnqqw "#%&++3368:@BBJKNNQRXX\\_cggiimmsty|`m $%..34DEMekkop~~"#%%((*+00247<GGIILLNNRRTT^_bbddgglpssvvxx  %%113378@@BBEFQRWWZ[`aiiϲn $$&&++3368;<??BBDMO_aae #%%'(++-2;;==?DFFHHJLNNPPRRTT^^`bkkmnqqxx "#&&*+/299=@CGMMOPSTVWZ[]]_aNo $%*,./14679<??BEH   "#'').147=@@DDFPRgkkmsv#%%**,,2369=>@DGHMMOPUW]]`l}~p %&((-.00346699;<?DFFRRTTWXZZ\\_ekkoptu{|~ #''++--::==?@BDFKOOQRWWcdggkkoprvzz~   ""q 99<<?@FFHHLMPPr ##%%'(..14679:==??BBDDFFJKMMRSXY[[_ehhjmosuwzz}}  "#'',-113<?ADDGKNNPPRRVW\]`acgmmoorsv s  &&(),/146799;<ABFGIKMNQSUUWXZ\^^aaefklqsux}}!##%%''))+/2699;;=>@DFFHHJKMNPPUUWY\]_`efhikkmnrsvʪt((--/023669=BDFFKNPRUUWWYZaafgjmqqssuw{{}~""%')/128@CDFFHHJKWX^affkkmmz{  #*,//3369<<>>BDiu !3;;??BBDDQQ[[]^ffprvv&&1288<=DDNNXX\]lnqquuw  %&+,66==@@HHJJNNST\\bbggllx{4>>PvH %%1277IKbbdezz##+,66??KKNNPPef  "#2288CCOPRRYY[[]^5;NNwZZ34??&&LL "33;Vx6aaffppvw./XXhhuu{{  ++--0099mmxy!!))66@@GGPPWXy@ 0022::==KKYY\\hhtt**,,22??KKfgGGaaeevv~~  ##--1288KKYYz~~??EEo2 Hm~cCC()Pc->(cAllcAnybArchbArithExceptionbArraybArrayExceptionbAsyncExceptionbBool]b BufferModeKb BufferStateGb BuildFlags:b BuildInfo%b BuildTypebCCharaCClockaCDevfaCDouble aCFloat`CInol`CInt$`CIntMax_CIntPtr_CLDouble;_CLLong^CLong^CModec^COff^CPid]CPtrdiff]CSCharC]CShort\ CSigAtomic\CSizek\CSsize#\CTime[CUChar[CUInta[CUIntMax[CUIntPtrZCULLongZCULongAZCUShortYCWcharYChanYCharWY CleanFlagsJY CommandParseAYCompiler6YCompilerFlavorY CompilerIdYComplexXConfVarX ConfigFlagsXConfiguredProgramX ConsoleEventXConstrX ConstrRepXCopyDestX CopyFlagsXDataRepXDataTypewX DependencydX DependencyMapRXDigit4XDoc.XDoubleWDynamicWE12WE6WElemvWErrnorW ExceptioniW ExecutableTWExitCodeBW Extension/WFDType+WFdVFieldV FingerTreeVFixityVFlagVFlagNameVFloat&VGeneralCategoryVGenericPackageDescriptionU GlobalFlagsU HaddockFlagsUHandleU HandlePosnU HandleTypeUHashDataU HscolourFlagsUIOU IOErrorTypeU IOExceptionxUIOMode^UIdIUIdentityndEneLnModeh]ncdnCompilerFlavor8n6n_n6n4nArch #r1q3q6q8qevqiKqoyprnaointnenbSoh omnood oeoIOModea'on.od5olvaEviLvnSvtZvsav IOErrorTypeeyvcvfvivevlvdvpvavrvsvevrvUnrecFieldParserivfvtvewd wfwfwiwt&wy-wp4we;wsBw ExtensionnXwo_wwfwnmwbwewl~wiwcwewnwswewLicensexwtwewnwswiwownw Extensionuxi xlxdxtxy&xp-xe4x BuildTypecxoxqgxtYxUnitunxeuxUniquenxvxexrxsxixoxnxrxaxnxgxexsx VersionRangeoydyeysyyyn#yt*ya1yx8y ExtensioneNycyfyr_yffylmyotyw{yArithExceptioniynyeydyeylyeymyeynytyArrayExceptioniydyazb zlzezi!zn(zs/zt6za=znDzcKzeRzsYz Extensionoozxvze}zdztzuzpzlzezsz Extensionmzbzizgzuzozuzsz SearchResultr{r{a{y#{UArraya׀eh~i0~r}v}yX{cs}pd{ek{a|fd|o|r{s{y{n{o{n{y{m{i{n{s{t{a{n{c{e{s{ Extensione|p |TypeRepp$|e+|r2|a9|t@|oG|rN|sU| Extensionak|mr|iy|l|i|e|s| Extensionb|l|e|Typeable1`}2M}3:}4'}5}6}7| Typeable7 Typeable6 Typeable5 Typeable4 Typeable3 Typeable2 Typeable1oz}n}TyCona}r}TVara}e}u}e}Boole}Treev}e}r}s}a~b ~l~e~ Traversablem~t<~lC~eJ~cQ~aX~s_~ef~lm~et~t{~t~e~r~GeneralCategorye~e~x~p~i~r~e~d~ IOErrorTypeir~eadiRki"l)l0e7d>AsyncExceptiondYThreadId#p ThreadId#sversion VersionRangemts7xtTextdeta ils" TextDetailst>fElLaSgZsa TestFlagsp{latehaskellȀ Extensionbހlserror PErrore Table#v3^acd6efwhri%optEuywḿstemerror IOErrorTypebӁoځlLexemem8rrogate#GeneralCategorySumSTa!moruyolve}StylearraySTUArray TextDetailseQi܂ngStringcre pDataRepo&n-s4t;rB ConstrRepafpvtgSTretSTRepSTRefmFDTyperablÃeʃStorablearray StorableArraySTMbDcnrZt<eC#JState#raahyoSTArraydalonederiƄv̈́iԄnۄg Extensionkove rfl"o)w0AsyncExceptionlKeRnp^terl StablePtr# StablePtr#ame StableNamea>eͅcԅiۅficpack age!d(b/ PackageDBc[rJcQArcheignnguc|ombiningma†rɆkІGeneralCategoryGeneralCategorylarisOSmNz1e8d?SizedpUl\ec BuildTypeArchoutdown ConsoleEventw‡ShowaMos߇ShowSrpar sear&g-s4ShowOrParseArgsrTg[sbShowOrParseArgsl~agsSFlagsaceHm݈qЈtÈSetSeqiclosedhan#d*l1e8 HandleTypekOfm[obdiepSeekModeromendSeekModetiȉoωn։Fieldrchres ult  SearchResulti=sDtKfRlYa`ggsn SDistFlagsc opedtypevƊa͊rԊiۊables ExtensionSCCm!p(l/e6v=aDrK SampleVar9e0lArchIntegeraDeis6000ArchgƋh͋tԋEitherac}gގl>qЍsYtu rni!n(o/r6d=eDrKArgOrderoterliscztedtypesynonjnΌyՌm܌s Extensionurcebeava&n-i4s;hBeIdP IOErrorTypexhhoavu}sted IOErrorTypeusy IOErrorTypea"u܍ireorde rArgOrderr)g0OptDescraEtxQeXd_pfomlty{rec ExtensioniveseŽeɎkЎSeekModei'ularfi leFDTypes.t5e<rCfJlQaXg_sf RegisterFlagsc֐oQsup؏rsivedoɏ Extensiondߏerror Exceptionele&r-r4o;rB ExceptionrXd_pwkirlydcards Extensionunsǐ Extensionoݐnerror Exceptiondl"Realfiw:oArHlOdV RealWorldlrua|cRealFracoat RealFloatReadbehΒmpysjwrite h7mod$e+IOModea>nEdLlSeZ HandleTypeReadSReadPrecReadPrecode’IOModeaՒnܒdle HandleTypeReadEuff%e,r3 BufferStatentƓwUbdaehvoivc}eFDTypeuffer RawBufferLexemeiדoޓRationalRationalk2Wn%t,y3p:eAsH Extensiont^yeplessz ExtensionsemQSemnQSemN ae/hiߛkobpərؕstu:war nin!g(PWarningbYnFcMLexemel`igcnduo|mainLicenserPtrtrǕ TextDetailseifocd_gOtoc ole"r)r0o7r> IOErrorTypea@r[abmiProgramcΖlocationProgramLocationoՖnܖfigurat ion"ProgramConfigurationrGgNProgArgufcmttProductessg$hŗid ProcessIDa̗nӗdڗle ProcessHandle__ ProcessHandle__r+o2u9p@iGdNProcessGroupIDnvrayteuseGeneralCategorytfat˘yҘp٘e PrintfTyperg PrintfArgcftp&r-o4c;eBsIsPoWr^ PreProcessori{xFixityvarPathTemplateVariablePreccBsՙuܙffixhan dle"r)PPSuffixHandlerArch6Q4XArchlonluPoolymorphiccšoɚmКpךoޚnents Extensionginev(e/r6v=aDrKPathTemplateVariablealmsezvarPathTemplateVariabledvarśPathTemplateVariablecoPicoan dlePHANDLEr6m`rBoIrPPErroriultsezArgOrderssiond̜s PermissionseӜnڜied IOErrorTypecg`rtht"e)r0n7gݝmsHiOgVn]adtkurryes ExtensionatchfaiǝlΝ Exceptionuards Extensiontem$p+l2a9t@eG PathTemplatevbairpiwa~blePathTemplateVariableaseĞa^f*orڞesult ParseResultk ParseResulta1i8l?eFdM ParseResultreglssShowOrParseArgsgllellistşc̟oӟmڟp Extensionraph sep!a(r/a6t=oDrKGeneralCategoryegmnoud|eModekagePackageb#cdf]iӠd nߠdex PackageIndexenti&f-i4e;rBPackageIdentifieridxkerdydepsPackageFixedDepsbޢeisǡtΡi+sڡuspicio us PackageCheckn2e9x@cGuNsUa\bcljeq PackageCheckscription¢PackageDescription PackageDBheck  PackageChecku*i1l8d?iwKaRrYn`ignngu PackageCheckmpossibleƣ PackageCheckOpaqueb.nprSs:t#verfl!ao-a4d;eBdIsPtWr^ienlgssz ExtensionppinginstȤaϤn֤cݤes ExtensionlowArithExceptionh*e1r8ac֦el<nopsbyimpbwo~lGeneralCategoryunctuaĥt˥iҥo٥nGeneralCategorysOSu mbe r'GeneralCategoryexiHcOeVn]sdekLicensetterGeneralCategoryrrorŦ IOErrorTypeoݦmpilerCompilerFlavorr"c)h0ArchOSxKOSdZOrdelrsizngOrderingaetadfimoͧnԧOptDescrfield OptionFieldis&a-t4i;oBnIlPeWv^eellOptimisationLevellagsOptFlagsesècʨrѨOptDescrrgOptDescrnbhrpun%c,t3u:aAtHiOoVn]GeneralCategoryayndleProcessHandle__sdOSqǩuΩeթOpaqueelinemode$Modej5e<cCtJObjectaehouum|Num abcadPf1imnoHp rs>t̪ahتiߪngMaybessi gne"d)GeneralCategoryuEcLhStZhaihnogv IOErrorTypee maloptimīi˫sҫa٫tionOptimisationLevelpDataRepa'r.s5e<PErrorpOtVi]mdiksraytionOptimisationLevelemsteĬrˬmҬi٬nation Exceptionpa c'i.n5g<mCaJrQkXGeneralCategory SearchResulteronompatbinȭdϭs֭ Extensionorphismre$s+t2r9i@cGtNiUo\nc Extensiontyhoderror ExceptionmǮpήlծiܮcitprel ude" Extensionl8a?gFFlageWTreeohpoyvd}estCopyDestufferïiʯnѯgد BufferModergArgDescrc CompilerFlavorsHt+b2s9d@OStOeVd]adtkormyically ExceptionmeNamedӰfڰieldpun s Extension6ԶaikFouvvFaMrTMVar#gMVar#litavar#MutVar#bl±eɱa/bձyܱtearray #MutableByteArray#r6r=aDyK#R MutableArray#tpiwp~aramtypeclIJa˲sҲsٲes Extensiondna,oidMonoidd3MonadftpLlSuZsa MonadPlusi{xMonadFixe8ifierlsȳyϳmֳbݳolGeneralCategoryetter#GeneralCategoryModefoRpYt`dgensuc|r MkOptDescrlagFlagcӴp´sɴArchrڴoMicrogk1p$rtx2ybe#Maybei9m@uGmNoUp\tcijmqixsationOptimisationLevelhsǵyεmյbܵolGeneralCategoryra yMArrayMape8 BuildTypefLiSlZeafhloavg}s MakefileFlagsichashŶ Extension8۶kArchasefgkiotOrderingc-gsw5e<rCcJaQsXe_lfemttt{erGeneralCategorysofpreȷcϷiַsݷionArithExceptiono ff ConsoleEventa4l;bBuIiPlWd^ienlfsozLocalBuildInfob(cm޹nst Conditiontȸuϸaָrݸray ListUArraye!uxOSbns2e9p@aGrNaUt\ocrjGeneralCategoryoLineNoufferinǹgι BufferModeitLimiten seLicensed.ers>uEbLdSiZravhaorvPathTemplateVariablearyLibraryraĺl˺tҺyٺpesynon yms Extensioni5r<vCaJrQPathTemplateVariableprlyLicenselagsLFlagsf<txûeʻmѻeػLexemeternu mbe r'GeneralCategorytCEithermTo[dbeiModesмterversion VersionRanget׼Lastei*leis liKleislin1d8s?iFgMnTa[tbuirpews~ ExtensionyKey#h˽ustMaybecҽCompilerFlavorInteger#(1368atdSf%glmnopҾrsVxJIxcsbtirpiwn~gIsStringharIsChariþxʾOSrپIPrIOaemrtEuarr%a,y3IOUArrayoLdSiZfafhaorvr}ay IOToDiffArrayefIORefoƿdͿeԿIOModer6xcept ion! IOExceptionr=oDrKIOErrortayhpoev IOErrorTyperrayIOArray ac)dfiLlCr:stQvalidargu$m+e2n9t@ IOErrorTypeInt #136\8Nce mprsetIntSetepDataReptrIntPtrapIntMapgrrs"e)c0t7v>eErLsSiZoanhroavn}ges VersionRangeupted IOErrorTypeeralIntegralr Integero#n*s1t8r? ConstrRepInt84cInt64#wInt64#2Int326Int16Int#tallde flags  InstallFlagsd'p.a5c<kCaJgQeXi_nffmotInstalledPackageInfo_InstalledPackageInfo_irs%templatesInstallDirTemplates InstallDirs:+::+:tSiZaalhqouvo}teGeneralCategoryixFixityexoutofboundsArrayExceptiono0h7e>rEeLnStZianhsotva}nces Extensionppropriatetype  IOErrorTypep"l)ConfVari;cBiItPpWa^realmssz Extensionlegaloperation IOErrorTypeno reHandlerb,l3o:cAkHFieldeZnathLexeme6rrayIArray4Arch#Int84#Int64286Arch#Int326#Int16Inta"be%op3st}u[gbsiCompilerFlavormldirvarPathTemplateVariablecolourflags HscolourFlagsprSuDxKOSiZnathfotvy}pe HPrintfTypeaArchokedbuildinfo HookedBuildInfoalr6e=dDoKcRuYm`egnntus| ExtensioniumCompilerFlavorpoverflowAsyncExceptioncCompilerFlavordn'rs8hrDeKsRoYl`ugtniuo|n HasResolutiontable HashTabledwarefault IOErrorTyped.l5e<Handle_prt`ygpneu HandleTypeHandlerosin HandlePosntionHandlePosition_Handle__do#c*k1f8l?aFgMsT HaddockFlags a`ehlmpqrtOrderingaphGraph GenericQ'lLicense GenericM'ob alflp%a,c3k:aAgHeOdVb] PackageDBlsazgs GlobalFlagscCompilerFlavorneravicGeneric'dbRm(pqdrRsCtGenericT'0 GenericT' ExtensionGenericRGenericQ'{ GenericQ'ackagedescriptionGenericPackageDescriptionGenericM'? GenericM'GenericBGeneric'l}cizednewtypederiving Extensionat$e+g2o9r@yGGeneralCategorydgtnsu ExtensionField #$adfi`lNoNruncptrFunPtrtiorFunctoron&a-l4d;eBpIePnWd^eenlcsizes Extensiona eomstringPErrorebsdOSctio%n,a3l: Fractionallru_nfdmotn{systemProgramLocationematGeneralCategoryi stForestgnfp&t-r4 ForeignPtrcMoTn[tbeinptws~ForeignPtrContentsunctioninterface  Extensiond a'b.l5e<Foldableae o_aftmFloat#cirepDataRepngFloatingonstr ConstrRepFloat#xib"l)e0ci<nCsJtQaXn_cfemst Extensionontexts ExtensiongFlaga nameFlagNamessig%n,m3e:nAtHFlagAssignmentelnrx{eityFixitydFixedstFirstali#quoteGeneralCategoryz*e1r8ehpDtKrR FinalizerPtrnovvp}trFinalizerEnvPtrehbiKm$opathFilePathffse t FileOffseto+d2e9FileModedRFileIDainpdwl~eHandleldFielddescr FieldDescref,gene ricFFFormatifo8r?mFaMtTFFFormatxmetd{FFFormatxponentFFFormatFDFdtypeFDTypel seBoolFloat 1l6`adim/nopBq-rxmcpe+itendsibon Extensionlerecords  Extensioned&d-e4f;aBuIlPtWr^uellessz ExtensionstcbefsuccessExitCodeailure ExitCodex"c)e0p7t>iEoLnS ExceptionoidpewExitCodetentialquantification Extensionc2u9t@aGbNlUe\ Executableewp~tion ExceptionrnorcmsgErrorMsgall ExceptionoErrnoOrderingEqoIcPhWt^iemles EpochTimefLexemecdumEnumoEndolosingma rkGeneralCategoryp6t=yDdkl`rUViewRViewLartyadecls ExtensiontherEithergeEdgerlierv$e+r2s9i@oGnN VersionRangeE62sE12#awe!igoueyna?eioerror IOErrorTypexce pti"o)n0 ExceptionmFiMcTDynamicapqlxexhandleHandlelDualcubleDouble#Double#Docd*i1r8v?aFrMPathTemplateVariablefrrsv}idebyzeroArithExceptionambiguaterec$o+r2d9f@iGeNlUd\sc ExtensioneyctoryFDTypefauarray DiffUArrayrray DiffArrayaEcfnpErsvKiRcYe`igdnDeviceIDcription Descriptionivedataty pea!b(l/e6 ExtensioneLnSdZeanhcoyv DependencyormalArithExceptionaultHandlerimaln umb"e)r0GeneralCategorydLlSoZcakh ExceptionstaDataDatadMr.stypeDataTypeubdirva rPathTemplateVariablee5p<DataRepiTr[vbairpPathTemplateVariablehpunctuationGeneralCategoryDouble#acd7fghirj>l+mnoprst=u(wy`cglniuc|sccSCCcstringCWStringlen CWStringLenh arCWcharcilarstHisTn[abmiepCUtsnamembufCUtimbufhtom BuildTypeortCUShortre ncy"s)y0m7b>oElLGeneralCategorylomntg{CULongongCULLongntCUIntmptrCUIntPtraxCUIntMaxha&r-CUChareinmNCTms`CTmsmue|CTimermiosCTermioscMh(iosJta4ringCStringlen  CStringLent;CStatiQzXe_CSsizegz{eCSizeasetCSigsetctomic CSigAtomictio n CSigactiono/r6t=CShorthTa[rbCSCharaiptrdiffCPtrdiff ExtensiondCPidsswdCPasswdfmnp8r) Conditiony?dfpjtUo\CopyDestrqexfixCopyDestlags CopyFlagsestCopyDestdf&inssRtrol&GeneralCategoryc@ ConsoleEvento,t^ConstrrConstrarep ConstrRepinedclassmethods Extensionl3e:eAvHeOnVt] ConsoleEventezctorpunctuationGeneralCategorynde xConIndexiQv2a9r@ConfVargXfudrker BuildTypedprogramConfiguredProgramlags ConfigFlagsi^n;tre"e)CondTreeoBdIePCondTreeteilosnz ConditionmxpilexComplexlerCompilerf=i"varPathTemplateVariabled) CompilerIdlDaKvRoYr`CompilerFlavorandCommandehylRp rui CommandUIeadytogo CommandParsea'r.s5e< CommandParseiYs`tg CommandParseelp CommandParserrors CommandParsefCOffot ConditionodeCModecdelzoFc%nsWe^ ConsoleEventdpzunctuationGeneralCategoryhandle HandleTypegCLongk,t3i:c`mFeM ClockTimekg ClockTickongCLLonganflags CleanFlagsoubleCLDoubleo n'v.CLconvmEpLbSuZfaCJmpBufnyotCIntmptrCIntPtraxCIntMaxCInoaCo r TextDetailsice o'p.t5OptDescrnqrOChar#bChar#ChanroupCGroupilposCFposoackCFLockt CFloatl!e(CFileeiuoHuObVl]edCDoubler|CDirentCDirentvCDevhlockCClockarCCharlSn=t"c)h0HandlerdD ConditioneZnadhaorvt}ime CalendarTimeCharani lo_r8s u\ytea%coun t ByteCountr,r3a:yA#H ByteArray#fihlodvfitype BuildTypenfo BuildInfolags BuildFlagsferBufferlmls;tBaItPeW BufferStateosdze BufferModeist BufferListcnil BufferListons BufferListd3+4LicenseLicensee?aFkM ConsoleEventouknrdyesBoundsdBoundedlBooloptOptDescrockbed ieond%e,a3d:mAvHaOrV Exceptionnldsezfinitely Exceptionuffering BufferModen*tsBitsd1i8r?vFaMrTPathTemplateVariablenug|patterns Extension b c d iw lmHnp,rsshyn cexc&e-p4t;iBoInPAsyncExceptioneorvt}ionfailed Exceptioncg9imraJowArrowaclmpbsSz+e2r9o@ ArrowZero Extensionliupsw ArrowPlusonad ArrowMonadoop ArrowLoophoice ArrowChoicep!p(l/y6 ArrowApplyyQArray#ejxqcxeptionArrayExceptionArray#Archthexcept ion!ArithExceptiondop]sOArgsldakcreyholderArgPlaceHolderrderArgOrderescrArgDescrhArchp3el?iFcMaTt[ibviep ApplicativendhmodeIOModeandle HandleTypeyAnyv ers!i(o/n6 VersionRangebOiVg]ouiopuws~ SearchResultusparsePErrorg lpr5ternat ive  Alternativee<aCdJyQeXx_ifsmtts{ IOErrorTypehaArchAllrightsreserv e d LicensecE r* e1 p8 DataRepoL nS sZ ta rh  ConstrRepx~ OSd r # Addr#y c l i c s c c SCCs o l u t e s e# e* k1 SeekMode:W ]K []:^ ]e [::]* + : :+:: :*:) () "o21e050///.-r-/-,,Z,,+(z(/(''\'&;&%$N( aOptDescraabbaStringChar[][]Char[]*)aOptDescraaBoolFlagBoolFlagaStringChar[][]Char[]T9Arch"Bool +k q# BuildFlags$ BuildInfod@% BuildType& CleanFlagsI'CompilermCompilerFlavor( CompilerIdConfVarvD ConfigFlags)ConfiguredProgramCopyDest:* CopyFlags6+ DependencyDocgV Executable, Extension-Field_^]FlagNameGenericPackageDescription GlobalFlagsK. HaddockFlagsH / HscolourFlagsF0 InstallFlagsL1IntB Library2Licenser3LocalBuildInfoi MakefileFlagsE4OS5OptimisationLevelnu6Ordering,PErroraPWarning` PackageCheck PackageDBo7PackageDescriptionpIS8PackageIdentifier"s PathTemplateqPathTemplateVariable9 PreProcessor :Program;ProgramConfigurationr4.<ProgramLocation5 RegisterFlagsM= SDistFlagsJ>ShowOrParseArgs? TestFlagsG@ UserHooksA Verbosity uWSO;/BVersion#C VersionRangeDaaPcbdirjflags\Char[]Char[]MaybeXChar[]Char[]InstalledPackageInfo_MaybeacvCondTreeaErrorMsgEitherG()IOF$ }zbth () ParseResult BuildFlags CommandUI BuildInfo[] BuildTypeMaybe{ BuildType[]Char[]& yihCA?>32ynkeZYR CleanFlags CommandUICompilerFlavorMaybeCompilerFlavorReadP ConfigFlags CommandUIConfiguredProgramMaybe CopyFlags CommandUI DependencyReadP Dependency[]-  Executable[] ExtensionReadP Extension[]  FilePathReadPFlagName[]_GenericPackageDescriptionIOGenericPackageDescription ParseResult GlobalFlags CommandUI HaddockFlags CommandUI HscolourFlags CommandUI InstallFlags CommandUILibraryMaybe|LicenseReadPLocalBuildInfoIOQ MakefileFlags CommandUI PackageCheck[]FPackageIdentifierIOPackageIdentifier[]!jo PathTemplate InstallDirseProgramMaybeProgram[]!ProgramConfigurationIO  RegisterFlags CommandUI  SDistFlags CommandUI StringReadP TestFlags CommandUI  VerbosityMaybeX VerbosityReadEVersionMaybe0VersionReadP VersionRangeReadPa FieldDescrwaIOaMaybeUNaOptDescra OptionFielda ParseResultx\[ZfaReadE&%=aReadPa SearchResulta[]OactionCommand^b FieldDescr-bOptDescrb OptionField.c Conditiondcc InstallDirs(dir InstallDirsflags CommandParseflags CommandUIflags OptionField/mInstalledPackageInfo_m[]ppkgMaybepkg PackageIndex<{pkg[]BoolFlagName(,)[]* PathTemplatePathTemplateVariable(,)[]ProgramConfigurationCompiler(,)IO&vProgramConfigurationConfiguredProgram(,)IO  VersionRangeCompilerFlavor(,)ReadP VersionRangeCompilerFlavor(,)[]Library Dependency[]ConfVarCondTreeMaybeE IntMaybePackageIdentifierPackageIdentifierIntInt[]IntArray(,,)zChar[] Extension(,)[]ConfiguredProgramMaybeProgram(,)[]PackageIdentifier[]pkg(,)[]}action CommandParsea(,) CommandParseWChar[][]CompilerFlavor(,)[] BoolFlagName(,)[]PackageDescription(,) Dependency[]EitherChar[]Char[]EitherChar[]IntMaybe(,)wPackageIdentifier[]pkg(,)[]pkg PackageIndexEither BuildInfoChar[](,)[] BuildInfoMaybe(,)Char[]IO Char[] InstallDirsChar[]MaybefChar[][]lcH1,+ml] ConfigFlags OptionField[]Field[] ParseResultLocalBuildInfoMaybeIO PackageCheck[]IOPackageDescriptionMaybeIO PathTemplate InstallDirsIOVersionMaybeIOaOptDescr[]xa[]ReadPa[][]'flags OptionField[][pkg[] SearchResultpkg[][]~ PreProcessorLocalBuildInfo BuildInfoChar[](,)[]ExitCodeChar[](,)IOaChar[]EitherIO acvCondTreeMaybeacvCondTreev Condition(,,)[]`  Executable Dependency[]ConfVarCondTreeChar[](,)[]GChar[]Char[](,)[]~)VersionPackageIdentifier(,)[]Char[](,)[]|Char[][]Char[](,)[](  BuildInfoChar[](,)[] BuildInfoMaybe(,)IO   BuildInfoChar[](,)[] BuildInfoMaybe(,) ParseResultChar[]InstalledPackageInfo_ PackageIndexgChar[]InstalledPackageInfo_ ParseResultChar[]MaybeIO Char[]Maybe InstallDirsChar[][][]YChar[]Char[](,)MaybeIOChar[]InstalledPackageInfo_ PackageIndexIOChar[]InstalledPackageInfo_ PackageIndexMaybeIO PathTemplateChar[] InstallDirs'BoolChar[]QMJ CompilerFlavorChar[]!CopyDestChar[]8OptimisationLevelChar[]" PackageDBChar[]U# PathTemplateChar[]$ VerbosityChar[] tVRN9%aChar[]Char[]Char[] sTPLK7Char[]MaybeChar[]20oollHlkk4kjjWjidKdcc]c+cbbbaeaSS]S/SSR;:::V::99y9U9=98888M8776aabbbBoolbba.-cba(Boola'BoolbDocaab.-,+bBool*)baBoolMaybeb*)aIO ExecutableaIOLibrarya ParseResultPErrora[]bChar[][]CompilerFlavor(,)[]bactionChar[][]flags^Char[][]bChar[]Maybe[]bBoolChar[]b VerbosityChar[]flags/bba[]aIOHandleChar[]ErrorMsgChar[]%aChar[]&bChar[]()IO VerbosityChar[]Char[]$aIOChar[] aOptDescrsetgetStringChar[][]Char[]bbChar[][]CompilerFlavor(,)[]bChar[]Maybe()IOChar[][]bbbBoolChar[]flagsflags VerbosityChar[]/;ArchBool Ciiii i i i  BuildFlags  BuildInfo l     CalendarTime  CleanFlags 63.Compiler iCompilerFlavor CompilerId ConfigFlags/.-,+*)('&%$#"!  QConfiguredProgram543210CopyDest6 CopyFlags ;:987C@; Dependency<DocErrorMsg= Executable@?>FieldBAFlagNameDCGenericPackageDescriptionIHGFE GlobalFlagsJ HaddockFlags ONMLK HscolourFlags SRQP| InstallFlags WVUTPMHIntba`_^]\[ZYXfLibrarydcLicenseLocalBuildInfoDrqponmlkjihgfe yrleRKE>+$ MakefileFlags uts)&!OSvOptimisationLeveliPErrorxwPWarning PackageChecky PackageDBi PackageDescription]~}|{z~xqkd^WQJD=70*#iSPackageIdentifier  PathTemplateii PreProcessorProgram   ProgramConfiguration    4viProgramLocation RegisterFlagswtojgb SDistFlags }]ZUShowOrParseArgs[String TestFlags UserHooks7sfYL?2% Verbosity>$     6vMLJIHFEVersion VersionRange agfUb,,++cdir     flags]getpkg#"! setaOptDescrsetget[]aaReadEChar[]Char[]MaybeacConfVarCondTree_acvCondTreeba` VersionRangeCompilerFlavor(,)VaErrorMsgEither'()IOzumh`[SNFA94,'tBoolMaybe BuildTypeMaybeChar[]**     }}l`_^^]]\\[[ZC^CompilerFlavorMaybev Dependency[] Executable[]ExitCodeIOh Extension[] Field[]__]IntMaybeLibraryMaybeLocalBuildInfoIO LocalBuildInfoMaybe }_X81PWarning[]PackageDescriptionMaybeFPackageIdentifier[]i PathTemplate InstallDirsiProgram[]VersionMaybea CommandUIWa FieldDescr-gfeaIOa InstallDirs(a OptionField.yxwa ParseResultaReadE[aReadP%\a[]'b InstallDirs(bReadEbReadPc Conditionddcdir InstallDirsjflags CommandUI^]\[ZYXmInstalledPackageInfo_srqponmlm[]  pkg PackageIndex<~}|{{zpkg[]DaiifZ  BuildInfoChar[](,)[] BuildInfoMaybe(,)PackageDescriptionGenericPackageDescriptionEither(,) QBoolFlagName(,)[] PathTemplatePathTemplateVariable(,)[] VersionRangeCompilerFlavor(,)[]Library Dependency[]ConfVarCondTreeMaybeChar[] Extension(,)[] Char[]Char[][]Char[](,)b(,,)[]Char[][]CompilerFlavor(,)[]StringChar[](,)UChar[]Char[](,) $$Char[][]Char[](,)))TT BuildInfoChar[](,)[] BuildInfoMaybe(,)SR Char[]InstalledPackageInfo_kChar[]Maybe vvutiChar[][]    bbY {vnia\TOGB:5-( _iPackageDescriptionMaybeIOVersionMaybeIOa FieldDescr[]aOptDescr[]a[][]actionCommand[]Wflags OptionField[]pkg PackageIndexMaybe W PreProcessorLocalBuildInfo BuildInfoChar[](,)[] } acvCondTreeMaybeacvCondTreev Condition(,,)[]  Executable Dependency[]ConfVarCondTreeChar[](,)[]Char[]Char[](,)[] BoolaaaChar[][]Char[](,)Char[](,,,)[]Char[][]Char[](,)[]  BuildInfoChar[](,)[] BuildInfoMaybe(,)IO }pcVI</" Char[]InstalledPackageInfo_ PackageIndexiChar[]MaybeIOChar[]Maybe[] PathTemplateChar[] InstallDirsBoolChar[] MMKKJIHHHHFCompilerFlavorChar[]CopyDestChar[]6OptimisationLevelChar[]  PackageDBChar[]ML PathTemplateChar[]   VerbosityChar[] 6MLJIH GFEaChar[]PONChar[]Char[]6MLJIHHHHGFFEEChar[]MaybeChar[]M/@%بɨ}rgVE0˧|qU;0%ަӦĦlaRC8vgXṂh]Ѣ¢rgN5ʡxhX=|j_TB# ݟǟSŞi^OD9.ޝΝcC, ̜u^G<+Лh]- ݚšM;)ygE1 ژȘlO5ח|jX#ޖÖiO˕kYG5ʔp^L:ޓȓkWE3Ғn\J2ߑ‘}^)ݐːlaF4 ܏ʏteZO0%֎ĎvWE:/̍xm]K0֌ˌ|qX?/ Ӌ{peZH8)݊yi^E5%ˉzaH2 Ј{X=2'ڇʇfWLA ΆVB7,!؅s_TI. ބӄȄk`N&փƒ}r_T@,!܂тscSH/ЁxfR.rN:fJ&~~~~~~~~t~`~@~ ~~}}}}}w}c}H}-}}|||||||r|^|>|$||{{{{{{^{D{1{&{{ {zzzzzzzz|zqzXzFz;zz zzyyyyysy_yGy5y*yyyxxxxxxFlagTAOrdaEqa MkOptDescrSFlags MkOptDescrOptFlags/ StringReadPStringwFilePathMPackagepkgIPackagepkgPackageFixedDepspkgLPackagepkgString/Packagepkg:4}EqbMonoidb MkOptDescr^TextaTextaString<Flag5Flag156<String%m ProgArgProgArgStringFilePathPPSuffixHandlerFilePathPPSuffixHandlerFilePathInstalledPackageInfo>FilePath9FilePathProgArgProgArgStringInstalledPackageInfoFilePathStringString@FilePath?FilePath0FilePath}FilePath:FilePath;FilePathFilePathStringFilePathStringFilePathStringFilePathYFilePathFilePath,PStringFilePathHookedBuildInfoString$FilePathStringStringPInstalledPackageInfoijklFilePathFilePathB!jD  gFU+ArgsArgsHookedBuildInfoArgsArgsHookedBuildInfoArgsArgsHookedBuildInfoArgsArgsHookedBuildInfoArgsArgsHookedBuildInfo~ArgsArgsHookedBuildInfo}ArgsArgsHookedBuildInfo|ArgsArgsHookedBuildInfo{ArgsArgsHookedBuildInfozArgsArgsHookedBuildInfoArgs}StringPPSuffixHandler|cJHookedBuildInfo4Flag1FilePathFlagrFlagFlagFilePathFlagFlagFlagFlagFilePathFlagFilePathFlagYZFilePathJUFilePathFlagFlagAssignmentStringoFilePathFilePathLProgArg_String FilePath FilePathFilePathxFilePathStringFFilePathString0FilePathInstallDirTemplatesvString.FilePathInstallDirTemplatesusuStringPackagepkgD C-FilePathcPPSuffixHandlerd1rFilePathFilePath PPSuffixHandlerPPSuffixHandlerPPSuffixHandlerPPSuffixHandlerFilePath E"FilePath 9RiwStringqFilePath,FlagString StringrFilePathpStringFilePathPPSuffixHandler Mz{StringTUVWLineNoString7klFlagfgFilePathFlagWXTSDFilePathString'*RUVX\StringFilePath8InstalledPackageInfoFilePath6InstallDirTemplatesStringcStringLineNoLineNoStringLineNoStringLineNoStringLineNoStringLineNoReadPStringLineNoStringLineNoString]StringBCFlagAFlag7FilePathFlag#$FlagFlagFilePathFlagFlag  Flag FlagString FilePathFlagFlagGFlag[String!]#FlagStringLineNoStringIString$FilePathPackagepkg{Flag|Flag~FilePathFlagFilePathFlagFStringFilePathProgArgubONStringRSFilePathMFlagAssignmentaFilePathString`StringZFlagLvFlag_cFlag\Flag[FlagWFlagV]^efgstFlagQXYdFilePathFlagCStringZStringInstallDirTemplatesIGFEFlag!StringEString-.Flag,Flag(FilePathFlag%BKt Tl>StringmFilePath3StringoStringStringFlagFilePathFlagnStringHFilePathStringFilePath3PackagepkgE]^_=StringReadPStringWReadPStringReadPStringMonoidbArgPlaceHolder MkOptDescrStringQ[FilePathStringMonoidbArgPlaceHolder MkOptDescrStringxNameLineNoStringStringKStringFilePathStringFilePathKFilePath\String#String6FilePath-FilePathPPSuffixHandler`FilePath!FilePathFilePath&FilePathStringFilePathStringString?StringaFilePathString01-.LineNoStringStringFlag@StringStringStringFilePathFilePath4String;StringStringFlag:StringZFilePathString MkOptDescrSFlagsNFilePathStringFilePathStringFStringFilePathProgArgString?StringdStringbString_bFilePathString#FilePatheFilePathString5String`7^StringFlagStringW(FilePath&BoundedbEnumbEqbShowb MkOptDescrMProgArgString DescriptionFlagLFlagsSFlags DescriptionLFlags MkOptDescrSFlagsFilePathStringNameMonoidbArgPlaceHolder MkOptDescrStringMonoidbArgPlaceHolder MkOptDescrStringbStringStringStringZInstalledPackageInfoStringYHookedBuildInfoStringPackagepkgStringInstalledPackageInfoStringTextaStringqProgArgStringLineNoStringFilePathStringIFilePathStringStringFilePathStringFilePathFilePathStringFilePathpFilePathFilePath8ReadaFilePathStringStringArgPlaceHolder DescriptionOptFlagsStringArgPlaceHolder DescriptionOptFlagsString DescriptionOptFlagsFilePathHookedBuildInfoString StringHArgsHookedBuildInfoPPSuffixHandlerFilePathStringFilePathStringFilePathStringxyString46String$ DescriptionOptFlags%Eqb Description MkOptDescrOptFlags,PackagepkgFlagAssignmentPPSuffixHandlerStringFilePathFlagStringkReadPfReadPQ`ReadPStringStringgReadPP]Packagepkg[PackagepkgPackagepkg PackageFixedDepspkgPackageFixedDepspkg^PackagepkgStringPackagepkgStringPackageFixedDepspkgPackagepkg PackageFixedDepspkgPackageFixedDepspkgStringqPackagepkgPackageFixedDepspkgGraphVertexNameOKFilePathString+FilePathC8QhvStringSStringFilePathInstalledPackageInfoString%)NQRmVFilePathInstallDirTemplatesInstalledPackageInfooLineNoStringStringOjVab`1MonoidflagsString;String28@String7=String3String<StringUnrecFieldParser  MkOptDescrOptFlagsHookedBuildInfoHookedBuildInfoStringhHookedBuildInfoFlagFlagFlagFilePathFlag=FilePathFlagFlagFilePathFlag*FilePathFlag FilePathFlagString3FilePathFlagFilePathFlagiFilePathFlag2Ns/:~ "'GL|+. H&OSJn +J(29-.>?@A<=7;fk &'*+,@ANpqyw(*HPay{ )/9:;=>/?A~D)dn /6C"IStringFilePathKPPSuffixHandlerOTextaReadPoReadPanReadP\cdmReadP[ReadPXReadPSReadPPeReadPRReadPlReadPtvwuFilePath0De2x'HookedBuildInfoFlagMMRRUV,HHJNQT`lzz !#$'+--2488@NPVH  #%%)-2PSTVVXX]]aloottwy  !#%%'*,2447;??AAIJMMSUXX<   #&&**//2PRUWY[^`aggjjlluuyy{    %3557>CCGKOVXX&$      ##%%)+-2EIKLOPTU&    "&&(,7:??AAEEGIKKMMQU0cdhhlluuyz|}  *339:<?AACCEEMORU  ((++--EEIIKLQQ%    "%44;;ABDDHHJJLOQSUV8236?BDGGKLNPRRTTVY]]_bhikkstx{ %'*--/48;==?OQV  &(*+..0133::==BCFFIISUXX--/3;;AAGHLMQSUV&`accijlmsuxy{  #%27;>>@ACCFGJMOV'ffkksuyy{{   ##%%(+.0;;??FFJKRU  ""%%((**-2;;>>ABFFKKMMQQSUYY5Y[^`ccffiimmuvyy||  %%((*+-.0356:>CCEFIJNQSTXXYJcJQJ/J JIIIsIII+I IHHHHHgHKHHGGG]GEG'G GFFF~FfFNFFEEEEgEKE%EEDDDtDHD(DCCCCcCMCCBBBBcBAB#B BAAAIAA@@@@^@8@@????b?6??>>>j>H> >===~=T=2==<<<N<<;;;;d;H;,;::::^:0:999f9>99888b8>88777n7H77666j6>66555Y55444k4=44333i3G33222s2I2'221111]1K1511000a0E0%0 0///v/X/8//...|.N..---^-,-,,,V,0,,++`+,+***X*,**))|)X)*)(((x(D(('''e'Q'7''&&&&{&Q&)&%%%%U%)%$$$Y$+$$##_#/##"""q"O"+" "!!!g!;!!   Y )  seG+tTT*^4`"jDz^2XZD$X2 rF]5]9 uM!W1 aM9M#U3    y e Q 7      o O      q F     C     m E  K#kAy[9! yY9wU7yI#uKgE%Y/YC/k7YA+ c!S;{aE){a7[3\$>T, ~V.~V"pBH&jJ&tB&tT8xV4^@v\@dD&lF(f8tT2z\iE!QcE#_;{W9wW3g?]A kG!iEYA1SoI%gEoA# {W%i;uE# mC ]-uT(F rD|Z@pD"rP,X< TyhcYHCxargsxargscx86_64X86_64 writeutf8file writeUTF8Filebwritepersistbuildconfig6writePersistBuildConfigawritepackagedescriptionpwritePackageDescriptionwriteinstalledconfigwriteInstalledConfig`writehookedbuildinfowriteHookedBuildInfowritefileatomic writeFileAtomic_wraptext-wrapText^wraplineIwrapLine]withvanillalibkwithVanillaLib\withutf8filecontentswithUTF8FileContents[ withtempfile withTempFileZwithtempdirectorywithTempDirectoryY withsharedlib withSharedLibX withprograms= withProgramsW withproflib` withProfLibV withprofexe withProfExeU withpackagedb withPackageDBTwithoptimizationwithOptimizationSwithlibwithLib withinrange withinRange withghcilib2 withGHCiLibRwithfilecontentsYwithFileContentsQwithexe|withExewindowsWindows warnunrec warnUnrecwarningwarningwarnwarnPviewasfielddescrviewAsFieldDescrO versionrange- VersionRangeversionLVersion* verbosityh Verbosity)verboseverbosevaxVaxvarVarutilsUtils( utfwarning UTFWarninguserspecifypathuserSpecifyPathNuserspecifyargs.userSpecifyArgsMuserspecifiedargsZuserSpecifiedArgsL userspecified UserSpecifiedK userpackagedb UserPackageDBJusermaybespecifypathuserMaybeSpecifyPathI userhooks UserHooks'GH updateprogram2 updateProgramFupdatepackagedescriptioncupdatePackageDescriptionunsupportedextensionsunsupportedExtensionsEunregistercommandunregisterCommandD unregister unregisterC unreghook unregHookBunrecfieldparser=UnrecFieldParserunlit^Unlit&unliteunliftedffitypesUnliftedFFITypesAunknownlicenseUnknownLicenseunknownextensionUnknownExtension@unknownbuildtypeUnknownBuildTypeunionversionrangesDUnionVersionRanges unicodesyntaxo UnicodeSyntax?undecidableinstancesUndecidableInstances> unboxedtuples UnboxedTuples= unambiguous Unambiguous<typesynonyminstances$TypeSynonymInstances; typeoperatorsU TypeOperators: typefamilies~ TypeFamilies9trygetconfigstatefiletryGetConfigStateFile8toutf8toUTF87topathtemplatetoPathTemplate6toflagtoFlag5 thisversion3 ThisVersionthispackageversion\thisPackageVersiontext~Text% testverbosity testVerbosity4 testflags TestFlags23 testedwith testedWith testdistpref testDistPref1 testcommand) testCommand0templatehaskellOTemplateHaskell/ tarprogramx tarProgram. tabserror TabsErrorsystemSystem$ syntaxerror syntaxErrorsynopsissynopsis succeedreade succeedReadEsubstpathtemplate;substPathTemplate,- stripprogramh stripProgram+ stripexes stripExes*standalonederivingStandaloneDeriving) stability stabilitysrcprefsrcPref(srcdistSrcDist# splitobjs1 splitObjs'specificpackagedbWSpecificPackageDB&sparcySparcsolarisSolarissnapshotversionsnapshotVersion%smartcopysourcessmartCopySources$simpleuserhooks simpleUserHooks simpleprogram1 simpleProgram# simpleparseU simpleParse simplefieldw simpleFieldsimpleSimple"silentsilent showversion showVersion showtoken showTokenshowtestedwithshowTestedWith showpwarning6 showPWarning showpackageid[ showPackageIdshowpackagedescriptionshowPackageDescriptionshoworparseargsShowOrParseArgs"showinstalledpackageinfofieldshowInstalledPackageInfoFieldshowinstalledpackageinfo4showInstalledPackageInfoshowhookedbuildinfokshowHookedBuildInfo showfreetext showFreeText showforghc showForGHC showfilepath showFilePathshowcompileridshowCompilerId!showargs"ShowArgs sh8SHsflagsLSFlags setupwrapperj SetupWrapper! setupWrapper setupmessage setupMessagesetupSetup sectionSection searchresult SearchResultsearchbynamesubstring)searchByNameSubstring searchbynameV searchByNamesdistverbosity|sDistVerbosity sdistverbose sDistVerbose sdistsnapshot sDistSnapshot sdisthook sDistHook sdistflags  SDistFlags sdistdistpref3 sDistDistPref sdistcommandX sdistCommandsdistusdist scratchdir scratchDirscopedtypevariablesScopedTypeVariabless390S390runtestsrunTestsrunsimplepreprocessor%runSimplePreProcessor runreadeNrunReadErunpreprocessorqrunPreProcessor runprunPrunerunErs6000Rs6000reversedependencyclosurereverseDependencyClosure restrictedtypesynonymsRestrictedTypeSynonyms requireprogramRrequireProgram reqarg'sreqArg'reqargReqArgreqArgremoveregscriptsremoveRegScriptsremoveinstalledconfigremoveInstalledConfigrelaxedpolyrecRelaxedPolyRec regverbosityD regVerbosity regverbosef regVerbose regpackagedb regPackageDB registerflags RegisterFlagsregistercommandregisterCommandregisterRegisterregister reginplace( regInPlacereghookEregHook reggenscripth regGenScript reggenpkgconf regGenPkgConf regdistpref regDistPref recursivedo RecursiveDorecordwildcardsRecordWildCards recordpuns& RecordPuns readutf8fileL readUTF8FilereadpackagedescriptionzreadPackageDescription readp_to_e readP_to_EreadpReadPreadhookedbuildinforeadHookedBuildInfo readfields readFields readeorfail3 readEOrFailreadeOReadEreaddescpreadDescrawsystemstdout'rawSystemStdout'rawsystemstdoutrawSystemStdoutrawsystemprogramstdoutconfrawSystemProgramStdoutConfrawsystemprogramstdout4rawSystemProgramStdoutrawsystemprogramconfjrawSystemProgramConfrawsystemprogramrawSystemProgram rawsystemexit rawSystemExit ranlibprogram ranlibProgram rankntypes  RankNTypes rank2types0 Rank2TypespwarningRPWarning publicdomainz PublicDomain progsuffix progSuffixprogramversionprogramVersion programpath programPath programname  programNameprogramlocation1ProgramLocationprogramLocation programidj programIdprogramfindversionprogramFindVersionprogramfindlocationprogramFindLocationprogramconfigurationProgramConfiguration programargs  programArgsprogram>Program progprefixc progPrefixprogdirprogdirprogargProgArgprintpackageproblemsprintPackageProblemspreunregpreUnregpresdist preSDistprereg'preRegpreprocesssourcesNpreprocessSources preprocessorw PreProcessor preprocess PreProcess preparetree prepareTreepreparesnapshottreeprepareSnapshotTree premakefile preMakefilepreinst4preInst prehscolourV preHscolour prehaddock{ preHaddock prefixvar PrefixVarprefixrelativeinstalldirsprefixRelativeInstallDirsprefixprefixprecopypreCopypreconf2preConfprecleanQpreCleanprebuildqpreBuildppunlitppUnlitppsuffixhandlerPPSuffixHandler ppsuffixes ppSuffixespphsc2hsppHsc2hspphappyppHappy ppgreencard. ppGreenCardppfieldsMppFieldsppfieldhppFieldppcpp'ppCpp'ppcppppCppppc64PPC64ppc2hsppC2hsppcPPCppalexppAlex postunreg  postUnreg postsdist, postSDistpostregLpostReg postmakefileo postMakefilepostinstpostInst posthscolour postHscolour posthaddock postHaddock~postcopypostCopy}postconf!postConf| postcleanB postClean{ postbuildd postBuildzpolymorphiccomponentsPolymorphicComponentsyplatformindependentplatformIndependentplainplaind pkgvervar PkgVerVar pkgversion' pkgVersionxpkgurlCpkgUrlvw pkgnamevarc PkgNameVarpkgnamepkgNameupkgidvarPkgIdVar pkgdescrfile pkgDescrFilepkgconfigprogrampkgConfigProgrampkgconfigdependspkgconfigDependstperror1PErrorrspatternsignaturesXPatternSignaturesq patternguards PatternGuardsppathtemplatevariablePathTemplateVariable pathtemplate PathTemplateparseversionrangeq parseVersionRangeQo parseversion7 parseVersionn parseutilsY ParseUtils parsetokenqz parseTokenQmparsetestedwithqparseTestedWithQl parseseplist parseSepListk parseresult ParseResulthij parsereade parseReadEg parsequoted6 parseQuotedfparsepkgconfigdependencyeparsePkgconfigDependencyeparsepackagenameqparsePackageNameQdparsepackagenameparsePackageNamecparsepackagedescriptionparsePackageDescriptionbparseoptversion,parseOptVersionaparseoptcommalistXparseOptCommaList`parseok|ParseOk]^_parsemodulenameqparseModuleNameQ\ parselicenseq parseLicenseQ[parseinstalledpackageinfoparseInstalledPackageInfoZparsehookedbuildinfo;parseHookedBuildInfoYparsefilepathqiparseFilePathQX parsefailed ParseFailedUVW parsefail parseFailTparseextensionqparseExtensionQSparsecompilerflavorcompatparseCompilerFlavorCompatRparsecommalistAparseCommaListQparsebuildtooliparseBuildToolP parseargs ParseArgsparseparseOparallellistcompParallelListCompNpackageversionpackageVersionM packagename packageNameL packageindex= PackageIndexpackageidentifierjPackageIdentifierJK packageid packageIdIpackagefixeddepsPackageFixedDepsHpackagedistsuspiciousPackageDistSuspiciouspackagedistinexcusable!PackageDistInexcusablepackagedescriptionUPackageDescriptionEFpackageDescriptionG packagedeps packageDeps packagedb PackageDB packagecheck PackageCheckpackagebuildwarning PackageBuildWarningpackagebuildimpossible?PackageBuildImpossiblepackagehPackageBpackageCDoverloadedstringsOverloadedStringsAoverlappinginstancesOverlappingInstances@otherosOtherOS? othermodules  otherModules> otherlicenseD OtherLicense<= othercompilerm OtherCompiler; otherarch OtherArch:osxOSX9osOS78orlaterversionorLaterVersion6orearlierversionorEarlierVersion5 optsfield' optsField4optionverbosityKoptionVerbosityoptionsmoptions3 optionname optionName optionfield OptionField optiondescr optionDescroptionoptionoptimisationlevelOptimisationLeveloptflags6OptFlagsoptdescrROptDescroptarg'moptArg'optargOptArgoptArgopenbsdOpenBSD2 objextension objExtensionnotthisversionnotThisVersion1notthispackageversionnotThisPackageVersion0noticeFnoticenormaloptimisationjNormalOptimisationnormalnormal/noparseNoParse-.nooptimisationNoOptimisationnoneNonenomonopatbindsNoMonoPatBinds,nomonomorphismrestriction?NoMonomorphismRestriction+noimplicitpreludeyNoImplicitPrelude*noflagNoFlag noextraflags noExtraFlags nocopydest NoCopyDest~noargnoArg} nhcprogram nhcProgram|nhc3NHC)netbsdLNetBSD(namedfieldpunslNamedFieldPuns'{nameNamezmultiparamtypeclassesMultiParamTypeClasses&y multioption multiOptionx moreverbose moreVerbose% modulepath& modulePath$mksimplepreprocessorPmkSimplePreProcessorwmksharedlibnamemkSharedLibNamev mkproflibname mkProfLibNameu mkoptdescr MkOptDescrt mklibname mkLibNamesmkflagMkFlag# mkdatadir mkDataDirrmips8Mips"mergeMmergeqmaybegetpersistbuildconfigxmaybeGetPersistBuildConfigp maybeexit maybeExitomaximumoptimisationMaximumOptimisationnmandirmandirmmakefileverbositymakefileVerbositylmakefileverboseCmakefileVerbosek makefilehookj makefileHook!j makefileflags MakefileFlagshi makefilefile makefileFilegmakefiledistprefmakefileDistPreffmakefilecommandmakefileCommandemakefile2makefilecd makecommandU makeCommandbmakepMake  maintainer maintainer magichash MagicHasham68kM68k lowercase lowercase` lookupprogram  lookupProgram_lookuppackagename3lookupPackageName^lookuppackageid_lookupPackageId]lookupknownprogramlookupKnownProgram\lookupdependencylookupDependency[ locationpath locationPathYZlocatederrormsg locatedErrorMsg localpkgdescr5 localPkgDescrXlocalbuildinfofile`localBuildInfoFileWlocalbuildinfoLocalBuildInfoUVlitLit listfield listFieldlinuxLinuxlinenoLineNolineNo liftoption& liftOptionT liftfieldE liftField licensefilee licenseFilelicenseLicenselicense libsubdirvar LibsubdirVarS libsubdir libsubdirR librarydirs libraryDirslibraryLibrary  library  libmodulesH libModules  libexecdirh libexecdirQliberaltypesynonymsLiberalTypeSynonyms P libdirvar LibdirVarOlibdirlibdirN libbuildinfo libBuildInfolgplLGPLlflags,LFlagsM lessverboseI lessVerbose ldprogrami ldProgramL ldoptions ldOptions laterversion LaterVersionknownsuffixhandlersknownSuffixHandlersK knownprograms knownProgramsJknownextensions+knownExtensionsIknownbuildtypesUknownBuildTypeskindsignatures~KindSignaturesH jhcprogram jhcProgramGjhcJHC isinfixof isInfixOfF isanyversion isAnyVersionirixIRIXinttoverbosity6intToVerbosityintersectversionrangesfIntersectVersionRanges intercalate intercalateEinsthookinstHookDinstallverbosityinstallVerbosityCinstallverbose installVerboseBinstallpackagedb. installPackageDBA installlibT  installLib>?@installincludes installIncludes installflags  InstallFlags<= installexe  installExe9:; installedpkgs  installedPkgs8installedpackageinfo_' InstalledPackageInfo_installedpackageinfo\ InstalledPackageInfoinstalldistpref installDistPref7installdirtemplates InstallDirTemplates5installDirTemplates6 installdirs  InstallDirs34installcommand1 installCommand2installR Installinstall01insert| insert/initialpathtemplateenv initialPathTemplateEnv.initialbuildsteps initialBuildSteps-info info,indir inDir+incoherentinstances1 IncoherentInstances*includes\ includes includedirs  includeDirs includedir  includedir) importdirs  importDirsimplicitparams ImplicitParams(impl Impl ignoreunrec%  ignoreUnrecifblockC IfBlockia64Z IA64i386n I386 hugsprogram  hugsProgram' hugsoptions  hugsOptionshugs Hugs htmldirvar  HtmldirVar&htmldirhtmldir% hssourcedirs  hsSourceDirs hslibrariesC hsLibrarieshscolourverbositykhscolourVerbosity$hscolourverbosehscolourVerbose#hscolourprogramhscolourProgram" hscolourpref hscolourPref! hscolourhook  hscolourHook  hscolourflags5 HscolourFlagshscolourexecutablesehscolourExecutableshscolourdistprefhscolourDistPref hscolourcss hscolourCSShscolourcommandhscolourCommandhscolourhscolour hsc2hsprogram% hsc2hsProgramhpuxBHPUXhppaVHppahookedprogramsthookedProgramshookedpreprocessorshookedPreProcessorshookedbuildinfoHookedBuildInfohomepagehomepage hmakeprogram hmakeProgram hiddenmodulesC hiddenModules heredocumentsi HereDocumentsheliumHelium hcoptions hcOptionshbcHBChaslibshasLibshasexeshasExes happyprogram happyProgramhaddockverbosity6haddockVerbosityhaddockverbose`haddockVerbosehaddockprogramhaddockProgram haddockpref haddockPref haddockname haddockNamehaddockinternalhaddockInternal haddockinterfaces!haddockInterfaces haddockhtmlsJ haddockHTMLshaddockhtmllocationuhaddockHtmlLocation haddockhscolourcsshaddockHscolourCss haddockhscolourhaddockHscolour  haddockhook haddockHook  haddockhoogle! haddockHoogle haddockflagsF HaddockFlagshaddockexecutablesthaddockExecutableshaddockdistprefhaddockDistPref haddockdir haddockdir haddockcss haddockCsshaddockcommand haddockCommandhaddock+Haddock haddockgreencardprogram[greencardProgramgplzGPL globalversion globalVersionglobalpackagedbGlobalPackageDBglobalnumericversionglobalNumericVersion globalflags GlobalFlags globalcommandD globalCommandghcverbosityoptionspghcVerbosityOptionsghcsharedoptionsghcSharedOptions ghcprogram ghcProgramghcprofoptionsghcProfOptions ghcpkgprogram ghcPkgProgram ghcoptions3 ghcOptionsghcLGHC getpersistbuildconfigtgetPersistBuildConfiggetinstalledpackagesgetInstalledPackagesgenpackageflagsgenPackageFlagsgenericsGenericsgenericpackagedescription4GenericPackageDescriptiongeneralizednewtypederivingwGeneralizedNewtypeDerivinggadtsGADTsfunctionaldependenciesFunctionalDependenciesfromutf8fromUTF8 fromstring FromStringfrompathtemplateGfromPathTemplatefromlistkfromListfromflagordefaultfromFlagOrDefaultfromflagfromFlagfreevarsfreeVarsfreebsdFreeBSD frameworks  frameworks frameworkdirs0 frameworkDirs foundonsystemV FoundOnSystemforeignfunctioninterfaceForeignFunctionInterfacefnamefNameflexibleinstancesFlexibleInstancesflexiblecontextsFlexibleContextsflattenpackagedescription@flattenPackageDescriptionflagtoverbositytflagToVerbosityflagtooptimisationlevelflagToOptimisationLevel flagtomaybe flagToMaybe flagtolist flagToListflagnameFlagNameflagNameflagdescriptionHflagDescription flagdefaultn flagDefaultflagassignmentFlagAssignmentflagFlagfindprogramversionfindProgramVersionfindprogramonpathfindProgramOnPathfindpackagedesc>findPackageDescfindhookedpackagedescnfindHookedPackageDescfindfilewithextension'findFileWithExtension'findfilewithextensionfindFileWithExtensionfindfilefindFilefinalizepackagedescription3finalizePackageDescriptionfieldsetafieldSet fieldname fieldNamefieldgetfieldGet fielddescr FieldDescrfieldFieldfieldffihugsprogramffihugsProgramfalsearg8falseArg failreadeU failReadEfkF extratmpfiles extraTmpFiles extrasrcfiles extraSrcFiles extralibs extraLibsextralibrariesextraLibraries extralibdirs  extraLibDirsextraghcilibraries@ extraGHCiLibrariesextensionstoflagso extensionsToFlags extensions  extensions extension  Extension extensiblerecords ExtensibleRecordsextendeddefaultrules!ExtendedDefaultRulesexposedmodulesN!exposedModulesexposeds!exposed explanation! explanationexistentialquantification!ExistentialQuantificationexename!exeName exemodules" exeModules exeextension<" exeExtension executables_" executables executable" Executableequating"equatingemptyuserhooks"emptyUserHooksemptytestflags"emptyTestFlagsemptysdistflags#emptySDistFlagsemptyregisterflagsF#emptyRegisterFlagsemptyprogramconfiguration}#emptyProgramConfigurationemptypackagedescription#emptyPackageDescriptionemptymakefileflags#emptyMakefileFlags emptylibrary$ emptyLibraryemptyinstallflagsA$emptyInstallFlagsemptyinstalledpackageinfow$emptyInstalledPackageInfoemptyhscolourflags$emptyHscolourFlagsemptyhookedbuildinfo$emptyHookedBuildInfoemptyhaddockflags%emptyHaddockFlagsemptyglobalflags>%emptyGlobalFlagsemptyexecutablei%emptyExecutableemptydatadecls%EmptyDataDeclsemptycopyflags%emptyCopyFlagsemptyconfigflags%emptyConfigFlagsemptycleanflags&emptyCleanFlagsemptybuildinfo<&emptyBuildInfoemptybuildflagse&emptyBuildFlagsearlierversion&EarlierVersion dynlibdir& dynlibdirdottosep&dotToSep docdirvar& DocdirVardocdir'docdir dllextension$' dllExtensiondisplayC'displaydispZ'dispdisambiguaterecordfields'DisambiguateRecordFieldsdiewithlocation'dieWithLocationdie'die description' Description descriptiondesccabalversion-(descCabalVersionderivedatatypeable[(DeriveDataTypeabledepends(dependsdependencyinconsistencies(dependencyInconsistenciesdependencygraph(dependencyGraphdependencycycles)dependencyCyclesdependencyclosure@)dependencyClosure dependencyg) Dependencydeletepackagename)deletePackageNamedeletepackageid)deletePackageIddeletedependency)deleteDependencydefaultuserhooks*defaultUserHooks~defaulttestflagsA*defaultTestFlagsdefaultsdistflagsn*defaultSDistFlagsdefaultregisterflags*defaultRegisterFlagsdefaultprogramconfiguration*defaultProgramConfigurationdefaultpackagedesc+defaultPackageDescdefaultmakefileflagsE+defaultMakefileFlagsdefaultmainwithhooksargs}+defaultMainWithHooksArgs}defaultmainwithhooks+defaultMainWithHooks|defaultmainnoread+defaultMainNoReadz{defaultmainargs,defaultMainArgsxy defaultmain@, defaultMainvwdefaultinstallflagsn,defaultInstallFlagsdefaultinstalldirs,defaultInstallDirsdefaulthscolourflags,defaultHscolourFlagsdefaulthookedpackagedesc -defaultHookedPackageDescudefaulthaddockflagsD-defaultHaddockFlagsdefaultglobalflagsu-defaultGlobalFlagsdefaultdistpref-defaultDistPrefdefaultcopyflags-defaultCopyFlagsdefaultconfigflags-defaultConfigFlagsdefaultcompilerflavor2.defaultCompilerFlavortdefaultcleanflagsd.defaultCleanFlagsdefaultbuildflags.defaultBuildFlagsdebug.debug deafening. deafeningsdatetosnapshotnumber.dateToSnapshotNumber datasubdirvar$/ DatasubdirVar datasubdirG/ datasubdir datafilesf/ dataFilesr datadirvar/ DatadirVardatadir/dataDirqdatadircustomfieldspd/customFieldsPDpcustomfieldsbi/customFieldsBIocustom0Customn currentdir40 currentDircsourcesR0cSourcesmcreatedirectoryifmissingverbose0createDirectoryIfMissingVerbose createarchive0 createArchive cppprogram0 cppProgram cppoptions1 cppOptionsl cpphsprogram"1 cpphsProgramcpp=1CPPkcorS1COrj copyverbosityo1 copyVerbosity copyverbose1 copyVerbosecopyto1CopyTo copyright1 copyrighthi copyprefix1 CopyPrefixcopyhook2copyHookg copyflags52 CopyFlagscopyfileverbose]2copyFileVerbose copyfiles2 copyFiles copydistpref2 copyDistPref~copydirectoryrecursiveverbose2copyDirectoryRecursiveVerbose} copydest' 3 copyDest'|copydest&3CopyDestyzcopyDest{ copycommandW3 copyCommandxconstrainedclassmethods3ConstrainedClassMethodsfwconfvar3ConfVareconfigverbosity3configVerbosityv configverbose3 configVerboseuconfigvanillalib&4configVanillaLibtconfiguserinstallS4configUserInstallsconfigureoptions4configureOptionsrconfiguredprogram4ConfiguredProgrampqconfigurecommand4configureCommando configureargs5 configureArgsnconfigureallknownprograms95configureAllKnownProgramsm configureg5 Configured configurehijkl configuration5 Configurationconfigstripexes5configStripExesgconfigsplitobjs5configSplitObjsfconfigsharedlib(6configSharedLibeconfigscratchdirS6configScratchDirdconfigprogsuffix6configProgSuffixcconfigprograms6configProgramsbconfigprogrampaths6configProgramPathsaconfigprogramargs7configProgramArgs`configprogprefix17configProgPrefix_ configproflibZ7 configProfLib^ configprofexe7 configProfExe]configpackagedb7configPackageDB\configoptimization7configOptimization[configinstalldirs8configInstallDirsZ confighcpkg,8 configHcPkgY confighcpathO8 configHcPathXconfighcflavoru8configHcFlavorW configghcilib8 configGHCiLibV configflags8 ConfigFlagsTUconfigextralibdirs8configExtraLibDirsSconfigextraincludedirs!9configExtraIncludeDirsRconfigdistprefQ9configDistPrefQconfigdependency{9configDependencyPconfigconstraints9configConstraintsOconfigconfigureargs9configConfigureArgsNconfigconfigurationsflags:configConfigurationsFlagsMconfigcompilerauxF:configCompilerAuxLconfigcompilerq:configCompilerKconfhook:confHookcJ condtreedata: condTreeDatabcondtreeconstraints:condTreeConstraintsacondtreecomponents;condTreeComponents`condtree9;CondTree_condnodeU;CondNode^ condlibraryt; condLibrary] condition; Condition\condexecutables;condExecutables[compilerversion;compilerVersionI compilervar< CompilerVarH compilerid)< CompilerIdYZ compilerIdGcompilerflavora<CompilerFlavorXcompilerFlavorFcompilerextensions<compilerExtensionsEcompiler<CompilerBCcompilerD comparing< comparingA commandusage= commandUsage@ commandui@= CommandUI>?commandsynopsish=commandSynopsis= commandsrun= commandsRun<commandshowoptions=commandShowOptions;commandreadytogo=CommandReadyToGo: commandparse > CommandParse9commandoptions3>commandOptions8 commandnameX> commandName7 commandlistz> CommandList6 commandhelp> CommandHelp5 commanderrors> CommandErrors4commanddescription>commandDescription3commanddefaultflags?commandDefaultFlags2commandaddactionK?commandAddAction1commandn?Command0commalistfield?commaListFieldWcombineinstalldirs?combineInstallDirs/cnot?CNotVcleanverbosity?cleanVerbosity. cleanverbose%@ cleanVerbose- cleansaveconfJ@ cleanSaveConf, cleanhookl@ cleanHookU+ cleanflags@ CleanFlags)* cleandistpref@ cleanDistPref( cleancommand@ cleanCommand'choiceoptfromenumAchoiceOptFromEnum& choiceopt*A ChoiceOpt$ choiceOpt%checkpersistbuildconfigeAcheckPersistBuildConfig#checkpackagefilesAcheckPackageFiles" checkpackageA checkPackage!checkconfiguredpackageAcheckConfiguredPackage checkBCheck chattytry1B chattyTry ccoptionsOB ccOptionsSTccldoptionsbuildinfo|BccLdOptionsBuildInfocategoryBcategoryQRcatchparseerrorBcatchParseErrorPcandBCAndO cabalversionC cabalVersionNcabalbootstrapping4CcabalBootstrappingcabalWCCabal c2hsprogramsC c2hsProgrambuiltinprogramsCbuiltinProgramsbuildverbosityCbuildVerbosity buildverboseC buildVerbose buildtype D BuildTypeL buildTypeM buildtools7D buildToolsKbuildprogramargs]DbuildProgramArgs buildpathsD BuildPathsbuildosDbuildOSJ buildinfoD BuildInfoGH buildInfoI buildhookD buildHookF buildflagsE BuildFlags builddistpref7E buildDistPrefbuilddirXEbuildDir builddependsxE buildDependsEbuildcompilerflavorEbuildCompilerFlavorD buildcommandE buildCommand buildarchE buildArchC buildable F buildableBbuild'FBuildbuild  bsd4WFBSD4@Absd3oFBSD3>?brokenpackagesFbrokenPackages breaksFbreaks boolopt'FboolOpt' booloptFBoolOptboolOpt boolfieldG boolField= bindirvar5G BindirVarbindirPGbindirbetweenversionsinclusivezGbetweenVersionsInclusive< bangpatternsG BangPatterns;autogenmodulesdirGautogenModulesDirautogenmodulenameHautogenModuleNameautoconfuserhooks3HautoconfUserHooks:authorVHauthor89arrowsrHArrows7 arprogramH arProgramarmHArm6argsHArgs5argplaceholderHArgPlaceHolderarchHArch34 anyversionI AnyVersion2 ambiguous9I Ambiguous ambigousparse[I AmbigousParse01alpha}IAlpha/allrightsreservedIAllRightsReserved-.allpackagesbynameIallPackagesByName allpackagesI allPackages allbuildinfoJ allBuildInfo, alexprogram?J alexProgramaixYJAIX+addknownprogramwJaddKnownProgramabsoluteinstalldirsJabsoluteInstallDirse|F-յv XزY7r\w;ȣTjZRۚϙٕ&ǐMaō/ًt>wUip|:Є@Ƃh~~%~}1}|J|y{z|zyfyxwvKvv{uyttsrqpPpoWnamllSkjRji{ihohgg.fe.edocbRb]a`_j_x^]\Z_ZY,YX'XKWVVUPUTmTTSgSRnR RQ'QPEPONN*NMMLDLK2KJJI INHG2GvF FE0EDCBAoA@@@~><0<;]:9998W877:76x65L5443f32s2/21k1/I/.g.-o-,,2+*)\)(z('^' '}&%%%3$Q##"!!W  x@3H"!rb z     B  P  A  QQDOBWA_m#[7? I]K&%ntQp4J\O2+4J]!d,|Lt]IN-tJ"FŻĺù('B(\%%pɪܩ6Dަ%~FXi*Û/%.Ƙ zyvZrlƎdZTފZmA˃ mlEllkkUkjiihhf6feEedBc.b=<);:;::97I76L6g5.5-4322|100!/.V.r-_,+]+))(K(' 'j&%z%$k$"h!  `Za,f4ot'f  D  #   g-Qhur%Y%Vyj,TW Uz193k/\F~$spCS(pf<T>0/K߿׸@\Y]ݯ'yéYEʧȦJNנ̞|2?ʜ.KΚx} Ɩl |w׏x*֍ȋxy}a# 55a 8l~1}{wxwv8usnmm?ljihhgedc,cbb`V`__>_^^T] ]\C\[^[ZzZY&YXQUTS\SR^QP O.NFMLLKJNIHHHGGF0EDDC@CBA@?h?>f>=h<;:f::998{8{7876p665e5432h1/..-,b+*])(L(M'&&%c$"W!].82q>*/U  ~ + k=GrPqp0 A&w)N>brN!Av]ONy$й߷ܶ+>qtv,5yƩVߥqܣv~0Ceß\ݞ~)]ME֙ ̘VݕbklK{Tzz8yxvuts%rqppponnzmylzkqjii_hcDb;a>` ^]_\(unlitunlit :: FilePath -> String -> Either String String\\FilePathStringEitherStringStringunlit takes a filename (for error reports), and transforms the given string, to eliminate the literate comments from the program text. (plainplain :: String -> String -> String]]StringStringStringNo unliteration. xargs xargs :: Int -> ([String] -> IO ()) -> [String] -> [String] -> IO ()^^Int[]StringIO()[]String[]StringIO()bLike the unix xargs program. Useful for when we've got very long command lines that might overflow an OS limit on command line length and so you need to invoke a command multiple times to get all the args in. Use it with either of the rawSystem variants above. For example:
xargs (32*1024) (rawSystemExit verbosity) prog fixedArgs bigArgs
 writeUTF8File writeUTF8File :: FilePath -> String -> IO ()``FilePathStringIO()tWrites a Unicode String as a UTF8 encoded text file. Uses writeFileAtomic, so provides the same guarantees. writePersistBuildConfigwritePersistBuildConfig :: FilePath -> LocalBuildInfo -> IO ()aaFilePathLocalBuildInfoIO()\After running configure, output the LocalBuildInfo to the localBuildInfoFile. writeInstalledConfigwriteInstalledConfig :: FilePath -> PackageDescription -> LocalBuildInfo -> Bool -> Maybe FilePath -> IO ()\ccFilePathPackageDescriptionLocalBuildInfoBoolMaybeFilePathIO()RRegister doesn't drop the register info file, it must be done in a separate step. writeFileAtomicwriteFileAtomic :: FilePath -> String -> IO ();ddFilePathStringIO() Writes a file atomically. The file is either written sucessfully or an IO exception is raised and the original file is left unchanged.
  • Warning: On Windows this operation is very nearly but not quite atomic. See below.
On Posix it works by writing a temporary file and atomically renaming over the top any pre-existing target file with the temporary one. On Windows it is not possible to rename over an existing file so the target file has to be deleted before the temporary file is renamed to the target. Therefore there is a race condition between the existing file being removed and the temporary file being renamed. Another thread could write to the target or change the permission on the target directory between the deleting and renaming steps. An exception would be raised but the target file would either no longer exist or have the content as written by the other thread. On windows it is not possible to delete a file that is open by a process. This case will give an IO exception but the atomic property is not affected. wrapTextwrapText :: String -> StringhhStringStringGWraps text to the default line width. Existing newlines are preserved. wrapLinewrapLine :: Int -> [String] ->  [[String]]idiInt[]String[][]StringIWraps a list of words to a list of lines of words of a particular width. withVanillaLibwithVanillaLib :: LocalBuildInfo -> BoolOj6jLocalBuildInfoBoolWhether to build normal libs. withUTF8FileContentswithUTF8FileContents :: FilePath -> (String -> IO a) -> IO akjFilePathStringIOaIOa_Reads a UTF8 encoded text file as a Unicode String Same behaviour as withFileContents.  withTempFile  withTempFile :: FilePath -> String -> (FilePath -> Handle -> IO a) -> IO a@llFilePathStringFilePathHandleIOaIOa5Use a temporary filename that doesn't already exist. withTempDirectory withTempDirectory ::  Verbosity -> FilePath -> IO a -> IO a#ml VerbosityFilePathIOaIOaSUse a temporary directory. Use this exact given dir which must not already exist.  withSharedLib withSharedLib :: LocalBuildInfo -> BoolmmLocalBuildInfoBool*Whether to build shared versions of libs.  withPrograms withPrograms :: LocalBuildInfo -> ProgramConfigurationnnLocalBuildInfoProgramConfiguration#Location and args for all programs  withProfLib withProfLib :: LocalBuildInfo -> Bool?o&oLocalBuildInfoBool-Whether to build profiling versions of libs.  withProfExe withProfExe :: LocalBuildInfo -> BoolooLocalBuildInfoBool,Whether to build executables for profiling.  withPackageDB withPackageDB :: LocalBuildInfo ->  PackageDBplpLocalBuildInfo PackageDB*What package database to use, global/user withOptimizationwithOptimization :: LocalBuildInfo -> OptimisationLevelJq$qLocalBuildInfoOptimisationLevel3Whether to build with optimization (if available).  withGHCiLib withGHCiLib :: LocalBuildInfo -> BoolqqLocalBuildInfoBool2Whether to build libs suitable for use with GHCi. withFileContentswithFileContents :: FilePath -> (String -> IO a) -> IO arrFilePathStringIOaIOaGets the contents of a file, but guarantee that it gets closed. The file is read lazily but if it is not fully consumed by the action then the remaining input is truncated and the file is closed. warnwarn ::  Verbosity -> String -> IO ()ts VerbosityStringIO()|Non fatal conditions that may be indicative of an error or problem. We display these at the normal verbosity level. viewAsFieldDescrviewAsFieldDescr ::  OptionField a ->  FieldDescr a ut OptionFielda FieldDescra~to view as a FieldDescr, we sort the list of interfaces (Req > Bool > Choice > Opt) and consider only the first one. userSpecifyPath userSpecifyPath :: String -> FilePath -> ProgramConfiguration -> ProgramConfigurationiv(vStringFilePathProgramConfigurationProgramConfigurationUser-specify this path. Basically override any path information for this program in the configuration. If it's not a known program ignore it. userSpecifyArgs userSpecifyArgs :: String ->  [ProgArg] -> ProgramConfiguration -> ProgramConfigurationwwString[]ProgArgProgramConfigurationProgramConfigurationUser-specify the arguments for this program. Basically override any args information for this program in the configuration. If it's not a known program, ignore it.. userSpecifiedArgsuserSpecifiedArgs :: Program -> ProgramConfiguration ->  [ProgArg]4yyProgramProgramConfiguration[]ProgArg UserSpecified UserSpecified :: FilePath -> ProgramLocationyyFilePathProgramLocationHThe user gave the path to this program, eg. --ghc-path=/usr/bin/ghc-6.6  UserPackageDB UserPackageDB ::  PackageDBPzDz PackageDBuserMaybeSpecifyPath userMaybeSpecifyPath :: String -> Maybe FilePath -> ProgramConfiguration -> ProgramConfigurationG{zStringMaybeFilePathProgramConfigurationProgramConfiguration UserHooks UserHooks :: Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO () -> IO (Maybe PackageDescription) -> [PPSuffixHandler] ->  [Program] -> Args ->  ConfigFlags ->  IO HookedBuildInfo ->  F(Either GenericPackageDescription PackageDescription, HookedBuildInfo) ->  ConfigFlags ->  IO LocalBuildInfo -> Args ->  ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO () -> Args ->  BuildFlags -> IO HookedBuildInfo -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  BuildFlags -> IO () -> Args ->  BuildFlags -> PackageDescription -> LocalBuildInfo -> IO () ->  Args -> ! MakefileFlags -> "IO HookedBuildInfo -> #PackageDescription -> $LocalBuildInfo -> % UserHooks -> & MakefileFlags -> 'IO () -> (Args -> ) MakefileFlags -> *PackageDescription -> +LocalBuildInfo -> ,IO () -> -Args -> . CleanFlags -> /IO HookedBuildInfo -> 0PackageDescriptionȈĈ2ArgsBoolPackageDescriptionLocalBuildInfoIO()IOMaybePackageDescription[]PPSuffixHandler[]ProgramArgs ConfigFlagsIOHookedBuildInfo(,)EitherGenericPackageDescriptionPackageDescriptionHookedBuildInfo ConfigFlagsIOLocalBuildInfoArgs ConfigFlagsPackageDescriptionLocalBuildInfoIO()Args BuildFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks BuildFlagsIO()Args BuildFlagsPackageDescriptionLocalBuildInfoIO()Args MakefileFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks MakefileFlagsIO()Args MakefileFlagsPackageDescriptionLocalBuildInfoIO()Args CleanFlagsIOHookedBuildInfoPackageDescriptionMaybeLocalBuildInfo UserHooks CleanFlagsIO()Args CleanFlagsPackageDescriptionMaybeLocalBuildInfoIO()Args CopyFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks CopyFlagsIO()Args CopyFlagsPackageDescriptionLocalBuildInfoIO()Args InstallFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks InstallFlagsIO()Args InstallFlagsPackageDescriptionLocalBuildInfoIO()Args SDistFlagsIOHookedBuildInfoPackageDescriptionMaybeLocalBuildInfo UserHooks SDistFlagsIO()Args SDistFlagsPackageDescriptionMaybeLocalBuildInfoIO()Args RegisterFlagsIOHookedBuildInfo 2PackageDescriptionLocalBuildInfo UserHooks RegisterFlagsIO()Args RegisterFlagsPackageDescriptionLocalBuildInfoIO()Args RegisterFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks RegisterFlagsIO()Args RegisterFlagsPackageDescriptionLocalBuildInfoIO()Args HscolourFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks HscolourFlagsIO()Args HscolourFlagsPackageDescriptionLocalBuildInfoIO()Args HaddockFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks HaddockFlagsIO()Args HaddockFlagsPackageDescriptionLocalBuildInfoIO() UserHooks -> 1Maybe LocalBuildInfo -> 2 UserHooks -> 3 CleanFlags -> 4IO () -> 5Args -> 6 CleanFlags -> 7PackageDescription -> 8Maybe LocalBuildInfo -> 9IO () -> :Args -> ; CopyFlags -> <IO HookedBuildInfo -> =PackageDescription -> >LocalBuildInfo -> ? UserHooks -> @ CopyFlags -> AIO () -> BArgs -> C CopyFlags -> DPackageDescription -> ELocalBuildInfo -> FIO () -> GArgs -> H InstallFlags -> IIO HookedBuildInfo -> JPackageDescription -> KLocalBuildInfo -> L UserHooks -> M InstallFlags -> NIO () -> OArgs -> P InstallFlags -> QPackageDescription -> RLocalBuildInfo -> SIO () -> TArgs -> U SDistFlags -> VIO HookedBuildInfo -> WPackageDescription -> XMaybe LocalBuildInfo -> Y UserHooks -> Z SDistFlags -> [IO () -> \Args -> ] SDistFlags -> ^PackageDescription -> _Maybe LocalBuildInfo -> `IO () -> aArgs -> b RegisterFlagsK -> cIO HookedBuildInfo -> dPackageDescription -> eLocalBuildInfo -> f UserHooks -> g RegisterFlags -> hIO () -> iArgs -> j RegisterFlags -> kPackageDescription -> lLocalBuildInfo -> mIO () -> nArgs -> o RegisterFlags -> pIO HookedBuildInfo -> qPackageDescription -> rLocalBuildInfo -> s UserHooks -> t RegisterFlags -> uIO () -> vArgs -> w RegisterFlags -> xPackageDescription -> yLocalBuildInfo -> zIO () -> {Args -> | HscolourFlags -> }IO HookedBuildInfo -> ~PackageDescription -> LocalBuildInfo ->  UserHooks ->  HscolourFlags -> IO () -> Args ->  HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO () -> Args ->  HaddockFlags -> IO HookedBuildInfo -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  HaddockFlags -> IO () -> Args ->  HaddockFlags -> PackageDescription -> LocalBuildInfo -> IO () ->  UserHooks UserHooksdata  UserHooks(@Hooks allow authors to add specific functionality before and after a command is run, and also to specify additional preprocessors.
  • WARNING: The hooks interface is under rather constant flux as we try to understand users needs. Setup files that depend on this interface may break in future releases.
 updateProgram updateProgram :: ConfiguredProgram -> ProgramConfiguration -> ProgramConfiguration:ConfiguredProgramProgramConfigurationProgramConfiguration-Update a configured program in the database. unsupportedExtensionsunsupportedExtensions :: Compiler ->  [Extension] ->  [Extension]Compiler[] Extension[] ExtensionCFor the given compiler, return the extensions it does not support. unregisterCommandunregisterCommand :: CommandUI RegisterFlagsٕ CommandUI RegisterFlags unregister  unregister :: PackageDescription -> LocalBuildInfo ->  RegisterFlags -> IO ()hPackageDescriptionLocalBuildInfo RegisterFlagsIO() unregHook unregHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  RegisterFlags -> IO ()_ UserHooksPackageDescriptionLocalBuildInfo UserHooks RegisterFlagsIO()COver-ride this hook to get different behavior during registration. UnliftedFFITypesUnliftedFFITypes ::  ExtensionRF ExtensionUnknownExtensionUnknownExtension :: String ->  ExtensionȘString Extension UnicodeSyntax UnicodeSyntax ::  Extension ExtensionUndecidableInstancesUndecidableInstances ::  Extension~r Extension UnboxedTuples UnboxedTuples ::  Extensionҙƙ Extension Unambiguous Unambiguous :: a -> SearchResult aA(a SearchResultaTypeSynonymInstancesTypeSynonymInstances ::  Extension Extension TypeOperators TypeOperators ::  Extension Extension TypeFamilies TypeFamilies ::  ExtensionI= ExtensiontryGetConfigStateFiletryGetConfigStateFile ::  Read a => FilePath -> IO (Either String a)ʛReadaFilePathIOEitherStringatoUTF8toUTF8 :: String -> StringYFStringString'toPathTemplatetoPathTemplate :: FilePath ->  PathTemplate՜FilePath PathTemplatePConvert a FilePath to a PathTemplate including any template vars. toFlagtoFlag :: a -> Flag aziaFlaga testVerbosity testVerbosity ::  TestFlags -> Flag Verbosityܝ TestFlagsFlag Verbosity TestFlags TestFlags ::  Flag FilePath -> Flag Verbosity ->  TestFlagspFlagFilePathFlag Verbosity TestFlags TestFlagsdata  TestFlagsٞ testDistPref testDistPref ::  TestFlags ->  Flag FilePathX8 TestFlagsFlagFilePath testCommand testCommand :: CommandUI TestFlags CommandUI TestFlagsTemplateHaskellTemplateHaskell ::  Extension  Extension tarProgram tarProgram :: ProgramaWProgramsubstPathTemplate substPathTemplate :: PackageDescription -> LocalBuildInfo ->  PathTemplate -> FilePath?PackageDescriptionLocalBuildInfo PathTemplateFilePath'substPathTemplatesubstPathTemplate :: &[(PathTemplateVariable, PathTemplate)] ->  PathTemplate ->  PathTemplate,ܡ[](,)PathTemplateVariable PathTemplate PathTemplate PathTemplate stripProgram stripProgram :: ProgramzpProgram stripExes stripExes :: LocalBuildInfo -> BoolϢLocalBuildInfoBool,Whether to strip executables during install StandaloneDerivingStandaloneDeriving ::  Extensionrf Extension srcPrefsrcPref :: FilePath -> FilePathأFilePathFilePath splitObjs splitObjs :: LocalBuildInfo -> BoolF-LocalBuildInfoBool'Use -split-objs with GHC, if available SpecificPackageDBSpecificPackageDB :: FilePath ->  PackageDBѤFilePath PackageDBsnapshotVersionsnapshotVersion ::  CalendarTime -> Version -> Version^ CalendarTimeVersionVersionZModifies a Version by appending a snapshot number corresponding to the given date. smartCopySourcessmartCopySources ::  Verbosity ->  [FilePath] -> FilePath -> [String] -> [String] -> IO ()ڦ Verbosity[]FilePathFilePath[]String[]StringIO()Copy the source files into the right directory. Looks in the build prefix for files that look like the input modules, based on the input search suffixes. It copies the files into the target directory.  simpleProgram simpleProgram :: String -> ProgramStringProgramMake a simple named program. By default we'll just search for it in the path and not try to find the version name. You can override these behaviours if necessary, eg:
simpleProgram "foo" { programFindLocation = ... , programFindVersion ... }
ShowOrParseArgsdata ShowOrParseArgsRshowCompilerIdshowCompilerId :: Compiler -> String©CompilerStringShowArgsShowArgs :: ShowOrParseArgsShowOrParseArgsSFlagstype SFlags = [Char]S"Short command line option strings ) setupWrapper  setupWrapper :: FilePath -> [String] -> Maybe FilePath -> IO ()1FilePath[]StringMaybeFilePathIO() setupMessage  setupMessage ::  Verbosity -> String -> PackageIdentifier -> IO () VerbosityStringPackageIdentifierIO() SearchResultdata  SearchResult a(searchByNameSubstringsearchByNameSubstring :: Package pkg => PackageIndex pkg -> String -> [pkg]Packagepkg PackageIndexpkgString[]pkg~Does a case-insensitive substring search by package name. That is, all packages that contain the given string in their name.  searchByName searchByName :: Package pkg => PackageIndex pkg -> String -> SearchResult [pkg]IPackagepkg PackageIndexpkgString SearchResult[]pkg'Does a case-insensitive search by package name. If there is only one package that compares case-insentiviely to this name then the search is unambiguous and we get back all versions of that package. If several match case-insentiviely but one matches exactly then it is also unambiguous. If however several match case-insentiviely and none match exactly then we have an ambiguous result, and we get back all the versions of all the packages. The list of ambiguous results is split by exact package name. So it is a non-empty list of non-empty lists. sDistVerbositysDistVerbosity ::  SDistFlags -> Flag Verbosityհ SDistFlagsFlag Verbosity sDistVerbose sDistVerbose ::  SDistFlags ->  VerbositymS SDistFlags Verbosity sDistSnapshot sDistSnapshot ::  SDistFlags ->  Flag Bool˱ SDistFlagsFlagBool sDistHook sDistHook ::  UserHooks -> PackageDescription -> Maybe LocalBuildInfo ->  UserHooks ->  SDistFlags -> IO () UserHooksPackageDescriptionMaybeLocalBuildInfo UserHooks SDistFlagsIO()<Over-ride this hook to get different behavior during sdist.  SDistFlags  SDistFlags ::  Flag Bool ->  Flag FilePath ->  Verbosity -> Flag Verbosity ->  SDistFlags'ڳFlagBoolFlagFilePath VerbosityFlag Verbosity SDistFlags SDistFlagsdata  SDistFlags_/Flags to sdist: (snapshot, verbosity)  sDistDistPref sDistDistPref ::  SDistFlags ->  Flag FilePath SDistFlagsFlagFilePath sdistCommand sdistCommand :: CommandUI SDistFlags|b CommandUI SDistFlagssdistsdist :: PackageDescription -> Maybe LocalBuildInfo ->  SDistFlags -> FilePath -> FilePath -> [PPSuffixHandler] -> IO ()IPackageDescriptionMaybeLocalBuildInfo SDistFlagsFilePathFilePath[]PPSuffixHandlerIO()Create a source distribution.  scratchDir scratchDir :: LocalBuildInfo -> FilePathP3LocalBuildInfoFilePath+Where to put the result of the Hugs build. ScopedTypeVariablesScopedTypeVariables ::  Extension۷Ϸ ExtensionrunTestsrunTests ::  UserHooks -> Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO ()ʸ UserHooksArgsBoolPackageDescriptionLocalBuildInfoIO()Used for ./setup test runSimplePreProcessor runSimplePreProcessor ::  PreProcessor -> FilePath -> FilePath ->  Verbosity -> IO ()̹ PreProcessorFilePathFilePath VerbosityIO()runPreProcessor runPreProcessor ::  PreProcessor -> (FilePath, FilePath) -> (FilePath, FilePath) ->  Verbosity -> IO ()ݺ PreProcessor(,)FilePathFilePath(,)FilePathFilePath VerbosityIO()reverseDependencyClosurereverseDependencyClosure :: PackageFixedDeps pkg => PackageIndex pkg -> [PackageIdentifier] -> [PackageIdentifier]PackageFixedDepspkg PackageIndexpkg[]PackageIdentifier[]PackageIdentifierTakes the transative closure of the packages reverse dependencies. RestrictedTypeSynonymsRestrictedTypeSynonyms ::  Extension ExtensionrequireProgram requireProgram ::  Verbosity -> Program ->  VersionRange -> ProgramConfiguration -> ,IO (ConfiguredProgram, ProgramConfiguration)1 VerbosityProgram VersionRangeProgramConfigurationIO(,)ConfiguredProgramProgramConfigurationaCheck that a program is configured and available to be run. Additionally check that the version of the program number is suitable. For example AnyVersion or orLaterVersion (Version [1,0] []) It raises an exception if the program could not be configured or the version is unsuitable, otherwise it returns the configured program. reqArg' reqArg' ::  Monoid b => ArgPlaceHolder ->  (String -> b) -> (b -> [String]) -> #MkOptDescr (a -> b) (b -> a -> a) aBMonoidbArgPlaceHolderStringbb[]String MkOptDescrabbaaa*(String -> a) variant of reqArg reqArg reqArg ::  Monoid b => ArgPlaceHolder -> ReadE b -> (b -> [String]) -> #MkOptDescr (a -> b) (b -> a -> a) axMonoidbArgPlaceHolderReadEbb[]String MkOptDescrabbaaa/Create a string-valued command line interface. ReqArgReqArg ::  Description -> OptFlags -> ArgPlaceHolder -> ReadE (a -> a) -> a -> [String] ->  OptDescr a  DescriptionOptFlagsArgPlaceHolderReadEaaa[]StringOptDescraremoveRegScriptsremoveRegScripts :: IO ()ujIO()removeInstalledConfigremoveInstalledConfig :: FilePath -> IO ()FilePathIO()RelaxedPolyRecRelaxedPolyRec ::  ExtensionJ> Extension regVerbosity regVerbosity ::  RegisterFlags -> Flag Verbosity RegisterFlagsFlag Verbosity regVerbose regVerbose ::  RegisterFlags ->  VerbosityK. RegisterFlags Verbosity regPackageDB regPackageDB ::  RegisterFlags -> Flag PackageDB RegisterFlagsFlag PackageDB RegisterFlags RegisterFlags :: Flag PackageDB ->  Flag Bool -> Flag (Maybe FilePath) ->  Flag Bool ->  Flag FilePath ->  Verbosity -> Flag Verbosity ->  RegisterFlagsYFlag PackageDBFlagBoolFlagMaybeFilePathFlagBoolFlagFilePath VerbosityFlag Verbosity RegisterFlags RegisterFlagsdata  RegisterFlagsdFlags to register and unregister: (user package, gen-script, in-place, verbosity) registerCommandregisterCommand :: CommandUI RegisterFlagsrU CommandUI RegisterFlagsregister register :: PackageDescription -> LocalBuildInfo ->  RegisterFlags -> IO ()=PackageDescriptionLocalBuildInfo RegisterFlagsIO() regInPlace regInPlace ::  RegisterFlags ->  Flag Bool RegisterFlagsFlagBoolregHookregHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  RegisterFlags -> IO ()k UserHooksPackageDescriptionLocalBuildInfo UserHooks RegisterFlagsIO()COver-ride this hook to get different behavior during registration.  regGenScript regGenScript ::  RegisterFlags ->  Flag Boolc RegisterFlagsFlagBool regGenPkgConf regGenPkgConf ::  RegisterFlags -> Flag (Maybe FilePath) RegisterFlagsFlagMaybeFilePath regDistPref regDistPref ::  RegisterFlags ->  Flag FilePath~ RegisterFlagsFlagFilePath RecursiveDo RecursiveDo ::  Extension ExtensionRecordWildCardsRecordWildCards ::  ExtensionJ> Extension RecordPuns RecordPuns ::  Extension Extension readUTF8File readUTF8File :: FilePath ->  IO String FilePathIOStringaReads a UTF8 encoded text file as a Unicode String Reads lazily using ordinary readFile. ReadPtype ReadP r a = ReadP areadDescreadDesc ::  UserHooks -> IO (Maybe PackageDescription)D UserHooksIOMaybePackageDescriptionRead the description file rawSystemStdout' rawSystemStdout' ::  Verbosity -> FilePath -> [String] -> IO (String, ExitCode): VerbosityFilePath[]StringIO(,)StringExitCoderawSystemStdout rawSystemStdout ::  Verbosity -> FilePath -> [String] ->  IO String VerbosityFilePath[]StringIOStringSRun a command and return its output. The output is assumed to be encoded as UTF8. rawSystemProgramStdoutConf rawSystemProgramStdoutConf ::  Verbosity -> Program -> ProgramConfiguration ->  [ProgArg] ->  IO StringS  VerbosityProgramProgramConfiguration[]ProgArgIOStringELooks up the given program in the program configuration and runs it. rawSystemProgramStdout rawSystemProgramStdout ::  Verbosity -> ConfiguredProgram ->  [ProgArg] ->  IO Stringw9 VerbosityConfiguredProgram[]ProgArgIOString7Runs the given configured program and gets the output. rawSystemProgramConf rawSystemProgramConf ::  Verbosity -> Program -> ProgramConfiguration ->  [ProgArg] -> IO ()] VerbosityProgramProgramConfiguration[]ProgArgIO()ELooks up the given program in the program configuration and runs it. rawSystemProgram rawSystemProgram ::  Verbosity -> ConfiguredProgram ->  [ProgArg] -> IO ()y VerbosityConfiguredProgram[]ProgArgIO()#Runs the given configured program.  rawSystemExit  rawSystemExit ::  Verbosity -> FilePath -> [String] -> IO ()W VerbosityFilePath[]StringIO() ranlibProgram ranlibProgram :: ProgramProgram RankNTypes RankNTypes ::  Extension% Extension Rank2Types Rank2Types ::  Extensionsg Extension progSuffix progSuffix :: LocalBuildInfo ->  PathTemplateLocalBuildInfo PathTemplate/Suffix to be appended to installed executables programVersionprogramVersion :: ConfiguredProgram ->  Maybe VersionConfiguredProgramMaybeVersion-The version of this program, if it is known.  programPath programPath :: ConfiguredProgram -> FilePathbBConfiguredProgramFilePath'The full path of a configured program.  programName programName :: Program -> StringProgramString(The simple name of the program, eg. ghc programLocationprogramLocation :: ConfiguredProgram -> ProgramLocationConfiguredProgramProgramLocation7Location of the program. eg. /usr/bin/ghc-6.4 ProgramLocationdata ProgramLocation(Where a program was found. Also tells us whether it's specifed by user or not. This includes not just the path, but the program as well.  programId programId :: ConfiguredProgram -> String) ConfiguredProgramStringJust the name again programFindVersion programFindVersion :: Program ->  Verbosity -> FilePath -> IO (Maybe Version) Program VerbosityFilePathIOMaybeVersionTry to find the version of the program. For many programs this is not possible or is not necessary so it's ok to return Nothing. programFindLocationprogramFindLocation :: Program ->  Verbosity -> IO (Maybe FilePath)DProgram VerbosityIOMaybeFilePathqA function to search for the program if it's location was not specified by the user. Usually this will just be a ProgramConfigurationdata ProgramConfigurationThe configuration is a collection of information about programs. It contains information both about configured programs and also about programs that we are yet to configure. The idea is that we start from a collection of unconfigured programs and one by one we try to configure them at which point we move them into the configured collection. For unconfigured programs we record not just the Program but also any user-provided arguments and location for the program.  programArgs programArgs :: ConfiguredProgram ->  [ProgArg]b=ConfiguredProgram[]ProgArgDefault command-line args for this program. These flags will appear first on the command line, so they can be overridden by subsequent flags. ProgramProgram :: String ->  Verbosity -> IO (Maybe FilePath) ->  Verbosity -> FilePath -> IO (Maybe Version) -> ProgramString VerbosityIOMaybeFilePath VerbosityFilePathIOMaybeVersionProgramProgramdata ProgramN.Represents a program which can be configured.  progPrefix progPrefix :: LocalBuildInfo ->  PathTemplateLocalBuildInfo PathTemplate0Prefix to be prepended to installed executables 'progdirprogdir :: InstallDirs dir -> dir} InstallDirsdirdirProgArgtype ProgArg = StringprintPackageProblemsprintPackageProblems ::  Verbosity -> PackageDescription -> IO ()[ VerbosityPackageDescriptionIO()preUnreg preUnreg ::  UserHooks -> Args ->  RegisterFlags -> IO HookedBuildInfoF  UserHooksArgs RegisterFlagsIOHookedBuildInfo&Hook to run before unregister command preSDist preSDist ::  UserHooks -> Args ->  SDistFlags -> IO HookedBuildInfo% UserHooksArgs SDistFlagsIOHookedBuildInfoHHook to run before sdist command. Second arg indicates verbosity level. preReg preReg ::  UserHooks -> Args ->  RegisterFlags -> IO HookedBuildInfo( UserHooksArgs RegisterFlagsIOHookedBuildInfo$Hook to run before register command preprocessSourcespreprocessSources :: PackageDescription -> LocalBuildInfo -> Bool ->  Verbosity -> [PPSuffixHandler] -> IO ()kPackageDescriptionLocalBuildInfoBool Verbosity[]PPSuffixHandlerIO()nApply preprocessors to the sources from hsSourceDirs, to obtain a Haskell source file for each module.  PreProcessor PreProcessor :: Bool -> (FilePath, FilePath) -> (FilePath, FilePath) ->  Verbosity -> IO () ->  PreProcessorBool(,)FilePathFilePath(,)FilePathFilePath VerbosityIO() PreProcessor PreProcessordata  PreProcessor6MThe interface to a preprocessor, which may be implemented using an external program, but need not be. The arguments are the name of the input file, the name of the output file and a verbosity level. Here is a simple example that merely prepends a comment to the given source file:
ppTestHandler :: PreProcessor
ppTestHandler =
  PreProcessor {
    platformIndependent = True,
    runPreProcessor = mkSimplePreProcessor $ \inFile outFile verbosity ->
      do info verbosity (inFile++" has been preprocessed to "++outFile)
         stuff <- readFile inFile
         writeFile outFile ("-- preprocessed as a test\n\n" ++ stuff)
         return ExitSuccess
We split the input and output file names into a base directory and the rest of the file name. The input base dir is the path in the list of search dirs that this file was found in. The output base dir is the build dir where all the generated source files are put. The reason for splitting it up this way is that some pre-processors don't simply generate one output .hs file from one input file but have dependencies on other genereated files (notably c2hs, where building one .hs file may require reading other .chi files, and then compiling the .hs file may require reading a generated .h file). In these cases the generated files need to embed relative path names to each other (eg the generated .hs file mentions the .h file in the FFI imports). This path must be relative to the base directory where the genereated files are located, it cannot be relative to the top level of the build tree because the compilers do not look for .h files relative to there, ie we do not use "-I .", instead we use "-I dist/build" (or whatever dist dir has been set by the user) Most pre-processors do not care of course, so mkSimplePreProcessor and runSimplePreProcessor functions handle the simple case.  prepareTree prepareTree ::  Verbosity -> PackageDescription -> Maybe LocalBuildInfo -> FilePath -> FilePath -> [PPSuffixHandler] ->  IO FilePatha VerbosityPackageDescriptionMaybeLocalBuildInfoFilePathFilePath[]PPSuffixHandlerIOFilePath*Prepare a directory tree of source files. prepareSnapshotTreeprepareSnapshotTree ::  Verbosity -> PackageDescription -> Maybe LocalBuildInfo -> FilePath -> FilePath -> [PPSuffixHandler] ->  CalendarTime ->  IO FilePath VerbosityPackageDescriptionMaybeLocalBuildInfoFilePathFilePath[]PPSuffixHandler CalendarTimeIOFilePathUPrepare a directory tree of source files for a snapshot version with the given date.  preMakefile  preMakefile ::  UserHooks -> Args ->  MakefileFlags -> IO HookedBuildInfok UserHooksArgs MakefileFlagsIOHookedBuildInfoKHook to run before makefile command. Second arg indicates verbosity level. preInst preInst ::  UserHooks -> Args ->  InstallFlags -> IO HookedBuildInfor UserHooksArgs InstallFlagsIOHookedBuildInfo#Hook to run before install command  preHscolour  preHscolour ::  UserHooks -> Args ->  HscolourFlags -> IO HookedBuildInfoY UserHooksArgs HscolourFlagsIOHookedBuildInfoKHook to run before hscolour command. Second arg indicates verbosity level.  preHaddock  preHaddock ::  UserHooks -> Args ->  HaddockFlags -> IO HookedBuildInfof UserHooksArgs HaddockFlagsIOHookedBuildInfoJHook to run before haddock command. Second arg indicates verbosity level. ' PrefixVar PrefixVar :: PathTemplateVariableK4PathTemplateVariable#The $prefix path variable prefixRelativeInstallDirsprefixRelativeInstallDirs :: PackageDescription -> LocalBuildInfo -> InstallDirs (Maybe FilePath)bPackageDescriptionLocalBuildInfo InstallDirsMaybeFilePath%See prefixRelativeInstallDirs 'prefixRelativeInstallDirs prefixRelativeInstallDirs :: PackageIdentifier ->  CompilerId -> InstallDirTemplates -> InstallDirs (Maybe FilePath)LPackageIdentifier CompilerIdInstallDirTemplates InstallDirsMaybeFilePathCheck which of the paths are relative to the installation $prefix. If any of the paths are not relative, ie they are absolute paths, then it prevents us from making a relocatable package (also known as a "prefix independent" package). 'prefixprefix :: InstallDirs dir -> dir InstallDirsdirdirpreCopy preCopy ::  UserHooks -> Args ->  CopyFlags -> IO HookedBuildInfo{ UserHooksArgs CopyFlagsIOHookedBuildInfo Hook to run before copy command preConf preConf ::  UserHooks -> Args ->  ConfigFlags -> IO HookedBuildInfoR UserHooksArgs ConfigFlagsIOHookedBuildInfo%Hook to run before configure command preClean preClean ::  UserHooks -> Args ->  CleanFlags -> IO HookedBuildInfoh1 UserHooksArgs CleanFlagsIOHookedBuildInfoHHook to run before clean command. Second arg indicates verbosity level. preBuild preBuild ::  UserHooks -> Args ->  BuildFlags -> IO HookedBuildInfoi2 UserHooksArgs BuildFlagsIOHookedBuildInfoHHook to run before build command. Second arg indicates verbosity level. ppUnlitppUnlit ::  PreProcessor PreProcessorPPSuffixHandlertype PPSuffixHandler8 = (String, BuildInfo -> LocalBuildInfo -> PreProcessor){gA preprocessor for turning non-Haskell files with the given extension into plain Haskell source files.  ppSuffixes ppSuffixes :: [PPSuffixHandler] -> [String]h@[]PPSuffixHandler[]String?Convenience function; get the suffixes of these preprocessors. ppHsc2hsppHsc2hs ::  BuildInfo -> LocalBuildInfo ->  PreProcessorC BuildInfoLocalBuildInfo PreProcessorppHappyppHappy ::  BuildInfo -> LocalBuildInfo ->  PreProcessor BuildInfoLocalBuildInfo PreProcessor ppGreenCard ppGreenCard ::  BuildInfo -> LocalBuildInfo ->  PreProcessorS BuildInfoLocalBuildInfo PreProcessorppCpp' ppCpp' :: [String] ->  BuildInfo -> LocalBuildInfo ->  PreProcessor9[]String BuildInfoLocalBuildInfo PreProcessorppCppppCpp ::  BuildInfo -> LocalBuildInfo ->  PreProcessor BuildInfoLocalBuildInfo PreProcessorppC2hsppC2hs ::  BuildInfo -> LocalBuildInfo ->  PreProcessorg; BuildInfoLocalBuildInfo PreProcessorppAlexppAlex ::  BuildInfo -> LocalBuildInfo ->  PreProcessor BuildInfoLocalBuildInfo PreProcessor postUnreg postUnreg ::  UserHooks -> Args ->  RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()  UserHooksArgs RegisterFlagsPackageDescriptionLocalBuildInfoIO()%Hook to run after unregister command  postSDist postSDist ::  UserHooks -> Args ->  SDistFlags -> PackageDescription -> Maybe LocalBuildInfo -> IO ()3   UserHooksArgs SDistFlagsPackageDescriptionMaybeLocalBuildInfoIO()GHook to run after sdist command. Second arg indicates verbosity level. postRegpostReg ::  UserHooks -> Args ->  RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()y (  UserHooksArgs RegisterFlagsPackageDescriptionLocalBuildInfoIO()#Hook to run after register command  postMakefile postMakefile ::  UserHooks -> Args ->  MakefileFlags -> PackageDescription -> LocalBuildInfo -> IO () T  UserHooksArgs MakefileFlagsPackageDescriptionLocalBuildInfoIO()JHook to run after makefile command. Second arg indicates verbosity level. postInstpostInst ::  UserHooks -> Args ->  InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()   UserHooksArgs InstallFlagsPackageDescriptionLocalBuildInfoIO()cHook to run after install command. postInst should be run on the target, not on the build machine.  postHscolour postHscolour ::  UserHooks -> Args ->  HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO ()Z  UserHooksArgs HscolourFlagsPackageDescriptionLocalBuildInfoIO()JHook to run after hscolour command. Second arg indicates verbosity level.  postHaddock postHaddock ::  UserHooks -> Args ->  HaddockFlags -> PackageDescription -> LocalBuildInfo -> IO ()Y UserHooksArgs HaddockFlagsPackageDescriptionLocalBuildInfoIO()IHook to run after haddock command. Second arg indicates verbosity level. postCopypostCopy ::  UserHooks -> Args ->  CopyFlags -> PackageDescription -> LocalBuildInfo -> IO () UserHooksArgs CopyFlagsPackageDescriptionLocalBuildInfoIO()Hook to run after copy command postConfpostConf ::  UserHooks -> Args ->  ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO () UserHooksArgs ConfigFlagsPackageDescriptionLocalBuildInfoIO()$Hook to run after configure command  postClean postClean ::  UserHooks -> Args ->  CleanFlags -> PackageDescription -> Maybe LocalBuildInfo -> IO ()7 UserHooksArgs CleanFlagsPackageDescriptionMaybeLocalBuildInfoIO()GHook to run after clean command. Second arg indicates verbosity level.  postBuild postBuild ::  UserHooks -> Args ->  BuildFlags -> PackageDescription -> LocalBuildInfo -> IO (){- UserHooksArgs BuildFlagsPackageDescriptionLocalBuildInfoIO()GHook to run after build command. Second arg indicates verbosity level. PolymorphicComponentsPolymorphicComponents ::  Extension& ExtensionplatformIndependentplatformIndependent ::  PreProcessor -> Bool PreProcessorBool' PkgVerVar PkgVerVar :: PathTemplateVariablePathTemplateVariable4The $version package version path variable ' PkgNameVar PkgNameVar :: PathTemplateVariablePathTemplateVariable-The $pkg package name path variable 'PkgIdVarPkgIdVar :: PathTemplateVariable+PathTemplateVariableBThe $pkgid package Id path variable, eg foo-1.0  pkgDescrFile pkgDescrFile :: LocalBuildInfo -> Maybe FilePathLocalBuildInfoMaybeFilePath6the filename containing the .cabal file, if available pkgConfigProgrampkgConfigProgram :: ProgramzProgramPatternSignaturesPatternSignatures ::  Extension Extension PatternGuards PatternGuards ::  Extension4( Extension'PathTemplateVariabledata PathTemplateVariable' PathTemplatedata  PathTemplatenAn abstract path, posibly containing variables that need to be substituted for to get a real FilePath.  ParseArgs ParseArgs :: ShowOrParseArgspShowOrParseArgsParallelListCompParallelListComp ::  Extension Extension PackageIndexdata Package pkg =>  PackageIndex pkg+The collection of information about packages from one or more PackageDBs. It can be searched effeciently by package name and version. PackageDistSuspiciousPackageDistSuspicious :: String ->  PackageCheck8String PackageCheck!An issue that might not be a problem for the package author but might be annoying or determental when the package is distributed to users. We should encourage distributed packages to be free from these issues, but occasionally there are justifiable reasons so we cannot ban them entirely. PackageDistInexcusablePackageDistInexcusable :: String ->  PackageCheckString PackageCheckAn issue that is ok in the author's environment but is almost certain to be a portability problem for other environments. We can quite legitimately refuse to publicly distribute packages with these problems.  packageDeps packageDeps :: LocalBuildInfo -> [PackageIdentifier]E  LocalBuildInfo[]PackageIdentifierWhich packages we depend on, exactly. The PackageDescription specifies a set of build dependencies that must be satisfied in terms of version ranges. This field fixes those dependencies to the specific versions available on this machine for this compiler.  PackageDBdata  PackageDB!nSome compilers have a notion of a database of available packages. For some there is just one global db of packages, other compilers support a per-user or an arbitrary db specified at some location in the file system. This can be used to build isloated environments of packages, for example to build a collection of related packages without installing them globally.  PackageCheckdata  PackageCheck3#,Results of some kind of failed package check. There are a range of severities, from merely dubious to totally insane. All of them come with a human readable explanation. In future we may augment them with more machine readable explanations, for example to help an IDE suggest automatic corrections. PackageBuildWarningPackageBuildWarning :: String ->  PackageCheck$$String PackageCheckA problem that is likely to affect building the package, or an issue that we'd like every package author to be aware of, even if the package is never distributed. PackageBuildImpossiblePackageBuildImpossible :: String ->  PackageCheck &%String PackageCheckThis package description is no good. There's no way it's going to build sensibly. This should give an error at configure time. OverloadedStringsOverloadedStrings ::  Extension&& ExtensionOverlappingInstancesOverlappingInstances ::  ExtensionI'=' ExtensionoptionVerbosityoptionVerbosity :: (flags -> Flag Verbosity) -> "(Flag Verbosity -> flags -> flags) -> OptionField flagsH('flagsFlag VerbosityFlag Verbosityflagsflags OptionFieldflags optionName optionName ::  OptionField a -> Name(( OptionFieldaName OptionField OptionField :: Name ->  [OptDescr a] ->  OptionField aY)))Name[]OptDescra OptionFielda OptionFielddata  OptionField a)?We usually have a datatype for storing configuration values, where every field stores a configuration option, and the user sets the value either via command line flags or a configuration file. An individual OptionField models such a field, and we usually build a list of options associated to a configuration datatype.  optionDescr optionDescr ::  OptionField a ->  [OptDescr a]^+4+ OptionFielda[]OptDescraoptionoption :: SFlags -> LFlags ->  Description -> get -> set -> MkOptDescr get set a ->  OptionField al,,SFlagsLFlags Descriptiongetset MkOptDescrgetseta OptionFieldaxCreate an option taking a single OptDescr. No explicit Name is given for the Option, the name is the first LFlag given. OptimisationLeveldata OptimisationLevel*-Some compilers support optimising. Some have different levels. For compliers that do not the level is just capped to the level they do support. OptFlagstype OptFlags = (SFlags, LFlags).OptDescrdata OptDescr a9.aAn OptionField takes one or more OptDescrs, describing the command line interface for the field. optArg' optArg' ::  Monoid b => ArgPlaceHolder -> (Maybe String -> b) -> (b -> [Maybe String]) -> #MkOptDescr (a -> b) (b -> a -> a) a/V/MonoidbArgPlaceHolderMaybeStringbb[]MaybeString MkOptDescrabbaaa*(String -> a) variant of optArg optArg optArg ::  Monoid b => ArgPlaceHolder -> ReadE b -> b -> (b -> [Maybe String]) -> #MkOptDescr (a -> b) (b -> a -> a) a 10MonoidbArgPlaceHolderReadEbbb[]MaybeString MkOptDescrabbaaaDCreate a string-valued command line interface with a default value. OptArgOptArg ::  Description -> OptFlags -> ArgPlaceHolder -> ReadE (a -> a) -> a -> a -> a -> [Maybe String] ->  OptDescr a2?2  DescriptionOptFlagsArgPlaceHolderReadEaaaaa[]MaybeStringOptDescra objExtension objExtension :: String22StringExtension for object files. For GHC and NHC the extension is "o". Hugs uses either "o" or "obj" depending on the used C compiler. noticenotice ::  Verbosity -> String -> IO ()43 VerbosityStringIO()Useful status messages. We display these at the normal verbosity level. This is for the ordinary helpful status messages that users see. Just enough information to know that things are working but not floods of detail. NormalOptimisationNormalOptimisation :: OptimisationLevela5M5OptimisationLevelNoOptimisationNoOptimisation :: OptimisationLevel55OptimisationLevelNoneNone :: SearchResult a66 SearchResultaNoMonoPatBindsNoMonoPatBinds ::  Extensionl6`6 ExtensionNoMonomorphismRestrictionNoMonomorphismRestriction ::  Extension66 ExtensionNoImplicitPreludeNoImplicitPrelude ::  Extension47(7 ExtensionNoFlagNoFlag :: Flag aw7k7Flaga noExtraFlags noExtraFlags :: [String] -> IO ()77[]StringIO()Utility function, many commands do not accept additional flags. This action fails with a helpful error message if the user supplies any extra.  NoCopyDest NoCopyDest :: CopyDest88CopyDest' NoCopyDest NoCopyDest :: CopyDest99CopyDestnoArgnoArg :: (Eq b, Monoid b) => b -> #MkOptDescr (a -> b) (b -> a -> a) a99EqbMonoidbb MkOptDescrabbaaa nhcProgram nhcProgram :: Program ::ProgramNamedFieldPunsNamedFieldPuns ::  Extensionb:V: ExtensionNametype Name = String:MultiParamTypeClassesMultiParamTypeClasses ::  Extension:: Extension multiOption  multiOption :: Name -> get -> set -> [get -> set -> OptDescr a] ->  OptionField a;;Namegetset[]getsetOptDescra OptionFieldaCreate an option taking several OptDescrs. You will have to give the flags and description individually to the OptDescr constructor. mkSimplePreProcessor mkSimplePreProcessor :: ,(FilePath -> FilePath -> Verbosity -> IO ()) -> (FilePath, FilePath) -> (FilePath, FilePath) ->  Verbosity -> IO ()=C=FilePathFilePath VerbosityIO()(,)FilePathFilePath(,)FilePathFilePath VerbosityIO() mkSharedLibNamemkSharedLibName :: PackageIdentifier ->  CompilerId -> Stringb>8>PackageIdentifier CompilerIdString mkProfLibName mkProfLibName :: PackageIdentifier -> String>>PackageIdentifierString MkOptDescrtype  MkOptDescr get set a> = SFlags -> LFlags -> Description -> get -> set -> OptDescr ad? mkLibName mkLibName :: PackageIdentifier -> String??PackageIdentifierString mkDataDir  mkDataDir :: PackageDescription -> LocalBuildInfo -> CopyDest -> FilePath@g@PackageDescriptionLocalBuildInfoCopyDestFilePathmergemerge :: Package pkg => PackageIndex pkg -> PackageIndex pkg -> PackageIndex pkgzA(APackagepkg PackageIndexpkg PackageIndexpkg PackageIndexpkguMerge two indexes. Packages from the second mask packages of the same exact name (case-sensitively) from the first. maybeGetPersistBuildConfigmaybeGetPersistBuildConfig :: FilePath -> IO (Maybe LocalBuildInfo)BuBFilePathIOMaybeLocalBuildInfo+Try to read the localBuildInfoFile.  maybeExit maybeExit ::  IO ExitCode -> IO () dirDC InstallDirsdirdirmakefileVerbositymakefileVerbosity ::  MakefileFlags -> Flag VerbosityDD MakefileFlagsFlag VerbositymakefileVerbosemakefileVerbose ::  MakefileFlags ->  Verbosity,EE MakefileFlags Verbosity makefileHook makefileHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  MakefileFlags -> IO ()?FE UserHooksPackageDescriptionLocalBuildInfo UserHooks MakefileFlagsIO()?Over-ride this hook to get different behavior during makefile.  MakefileFlags  MakefileFlags ::  Flag FilePath ->  Flag FilePath ->  Verbosity -> Flag Verbosity ->  MakefileFlagsG+GFlagFilePathFlagFilePath VerbosityFlag Verbosity MakefileFlags MakefileFlagsdata  MakefileFlagsG makefileFile makefileFile ::  MakefileFlags ->  Flag FilePathDH H MakefileFlagsFlagFilePathmakefileDistPrefmakefileDistPref ::  MakefileFlags ->  Flag FilePathHH MakefileFlagsFlagFilePathmakefileCommandmakefileCommand :: CommandUI MakefileFlagsJI-I CommandUI MakefileFlags#makefile makefile :: PackageDescription -> LocalBuildInfo ->  MakefileFlags -> IO ()JIPackageDescriptionLocalBuildInfo MakefileFlagsIO()makefile makefile :: PackageDescription -> LocalBuildInfo ->  MakefileFlags -> [PPSuffixHandler] -> IO ()KJPackageDescriptionLocalBuildInfo MakefileFlags[]PPSuffixHandlerIO() makeCommand makeCommand :: String -> String -> Maybe (String -> String) -> flags -> ShowOrParseArgs -> [OptionField flags] -> CommandUI flagsgLKStringStringMaybeStringStringflagsShowOrParseArgs[] OptionFieldflags CommandUIflags-Make a Command from standard GetOpt options.  MagicHash MagicHash ::  ExtensionLL Extension lowercase lowercase :: String -> StringBM/MStringString lookupProgram lookupProgram :: Program -> ProgramConfiguration -> Maybe ConfiguredProgram NMProgramProgramConfigurationMaybeConfiguredProgram!Try to find a configured program lookupPackageNamelookupPackageName :: Package pkg => PackageIndex pkg -> String -> [pkg]NNPackagepkg PackageIndexpkgString[]pkg.Does a case-sensitive search by package name. lookupPackageIdlookupPackageId :: Package pkg => PackageIndex pkg -> PackageIdentifier ->  Maybe pkgOOPackagepkg PackageIndexpkgPackageIdentifierMaybepkgDoes a lookup by package id (name & version). Since multiple package DBs mask each other case-sensitively by package name, then we get back at most one package. lookupKnownProgramlookupKnownProgram :: String -> ProgramConfiguration ->  Maybe ProgramZQ'QStringProgramConfigurationMaybeProgramlookupDependencylookupDependency :: Package pkg => PackageIndex pkg ->  Dependency -> [pkg]$RQPackagepkg PackageIndexpkg Dependency[]pkgDoes a case-sensitive search by package name and a range of versions. We get back any number of versions of the specified package name, all satisfying the version range constraint.  locationPath locationPath :: ProgramLocation -> FilePathXS:SProgramLocationFilePath locationPath locationPath :: ProgramLocation -> FilePathSSProgramLocationFilePath localPkgDescr localPkgDescr :: LocalBuildInfo -> PackageDescriptionhTATLocalBuildInfoPackageDescriptionJThe resolved package description, that does not contain any conditionals. localBuildInfoFilelocalBuildInfoFile :: FilePath -> FilePath.UUFilePathFilePath
dist/setup-config
LocalBuildInfo,LocalBuildInfo :: InstallDirTemplates -> Compiler -> FilePath -> FilePath -> [PackageIdentifier] -> !PackageIndex InstalledPackageInfo -> Maybe FilePath -> PackageDescription -> ProgramConfiguration ->  PackageDB ->  Bool ->  Bool ->  Bool ->  Bool -> OptimisationLevel -> Bool -> Bool -> Bool ->  PathTemplate ->  PathTemplate -> LocalBuildInfoXmWInstallDirTemplatesCompilerFilePathFilePath[]PackageIdentifier PackageIndexInstalledPackageInfoMaybeFilePathPackageDescriptionProgramConfiguration PackageDBBoolBoolBoolBoolOptimisationLevelBoolBoolBool PathTemplate PathTemplateLocalBuildInfoLocalBuildInfodata LocalBuildInfoXOData cached after configuration step. See also Distribution.Setup.ConfigFlags.  liftOption  liftOption :: (b -> a) ->  (a -> b -> b) ->  OptionField a ->  OptionField bYYbaabb OptionFielda OptionFieldb' LibsubdirVar LibsubdirVar :: PathTemplateVariablePZ9ZPathTemplateVariable&The $libsubdir path variable ' libsubdir libsubdir :: InstallDirs dir -> dirZZ InstallDirsdirdir' libexecdir libexecdir :: InstallDirs dir -> dirZ[>[ InstallDirsdirdirLiberalTypeSynonymsLiberalTypeSynonyms ::  Extension[[ Extension' LibdirVar LibdirVar :: PathTemplateVariable\\PathTemplateVariable#The $libdir path variable 'libdirlibdir :: InstallDirs dir -> dir\\ InstallDirsdirdirLFlagstype LFlags = [String]\!Long command line option strings  ldProgram ldProgram :: ProgramP]F]ProgramknownSuffixHandlersknownSuffixHandlers :: [PPSuffixHandler]]][]PPSuffixHandlerHStandard preprocessors: GreenCard, c2hs, hsc2hs, happy, alex and cpphs.  knownPrograms knownPrograms :: ProgramConfiguration -> $[(Program, Maybe ConfiguredProgram)]^^ProgramConfiguration[](,)ProgramMaybeConfiguredProgramknownExtensionsknownExtensions ::  [Extension]:_(_[] ExtensionKindSignaturesKindSignatures ::  Extension__ Extension jhcProgram jhcProgram :: Program__Program isInfixOf isInfixOf :: String -> String -> BoolR`9`StringStringBool intercalate intercalate :: [a] -> [[a]] -> [a]``[]a[][]a[]ainstHookinstHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  InstallFlags -> IO ()aa UserHooksPackageDescriptionLocalBuildInfo UserHooks InstallFlagsIO()>Over-ride this hook to get different behavior during install. installVerbosityinstallVerbosity ::  InstallFlags -> Flag Verbositybb InstallFlagsFlag VerbosityinstallVerboseinstallVerbose ::  InstallFlags ->  Verbosity(c c InstallFlags VerbosityinstallPackageDBinstallPackageDB ::  InstallFlags -> Flag PackageDBcc InstallFlagsFlag PackageDB% installLib installLib ::  Verbosity -> FilePath -> FilePath -> PackageIdentifier -> Library -> IO ()dbd VerbosityFilePathFilePathPackageIdentifierLibraryIO()$Install for nhc98: .hi and .a files $ installLib installLib ::  Verbosity -> FilePath -> FilePath -> PackageDescription -> Library -> IO ()eze VerbosityFilePathFilePathPackageDescriptionLibraryIO()# installLib installLib ::  Verbosity -> LocalBuildInfo -> FilePath -> FilePath -> FilePath -> PackageDescription -> IO ()ff VerbosityLocalBuildInfoFilePathFilePathFilePathPackageDescriptionIO()7Install for ghc, .hi, .a and, if --with-ghci given, .o  InstallFlags  InstallFlags :: Flag PackageDB ->  Flag FilePath ->  Verbosity -> Flag Verbosity ->  InstallFlagshgFlag PackageDBFlagFilePath VerbosityFlag Verbosity InstallFlags InstallFlagsdata  InstallFlagsVh3Flags to install: (package db, verbosity) % installExe installExe ::  Verbosity -> FilePath -> FilePath -> (FilePath, FilePath) ->  Executable -> IO ()i:i VerbosityFilePathFilePath(,)FilePathFilePath ExecutableIO()Install executables for GHC. $ installExe installExe ::  Verbosity -> FilePath -> FilePath -> (FilePath, FilePath) -> PackageDescription ->  Executable -> IO ()jyj VerbosityFilePathFilePath(,)FilePathFilePathPackageDescription ExecutableIO()# installExe installExe ::  Verbosity -> LocalBuildInfo -> FilePath -> FilePath -> (FilePath, FilePath) -> PackageDescription -> IO ()lk VerbosityLocalBuildInfoFilePathFilePath(,)FilePathFilePathPackageDescriptionIO()Install executables for GHC.  installedPkgs installedPkgs :: LocalBuildInfo -> !PackageIndex InstalledPackageInfollLocalBuildInfo PackageIndexInstalledPackageInfo+All the info about all installed packages. installDistPrefinstallDistPref ::  InstallFlags ->  Flag FilePathmm InstallFlagsFlagFilePathinstallDirTemplatesinstallDirTemplates :: LocalBuildInfo -> InstallDirTemplatesDnnLocalBuildInfoInstallDirTemplatesEThe installation directories for the various differnt kinds of files 'InstallDirTemplatestype InstallDirTemplates = InstallDirs PathTemplatenThe installation dirctories in terms of PathTemplates that contain variables. The defaults for most of the directories are relative to each other, in particular they are all relative to a single prefix. This makes it convenient for the user to override the default installation directory by only having to specify --prefix=... rather than overriding each individually. This is done by allowing $-style variables in the dirs. These are expanded by textual substituion (see substPathTemplate). A few of these installation directories are split into two components, the dir and subdir. The full installation path is formed by combining the two together with /. The reason for this is compatability with other unix build systems which also support --libdir and --datadir. We would like users to be able to configure --libdir=/usr/lib64 for example but because by default we want to support installing multiplve versions of packages and building the same package for multiple compilers we append the libsubdir to get: /usr/lib64/$pkgid/$compiler. An additional complication is the need to support relocatable packages on systems which support such things, like Windows. ' InstallDirs  InstallDirs :: dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir -> dir ->  dir ->  dir ->  dir ->  dir ->  dir -> InstallDirs dir4utdirdirdirdirdirdirdirdirdirdirdirdirdirdir InstallDirsdir' InstallDirsdata  InstallDirs dirru-The directories where we will install files for packages. We have several different directories for different types of files since many systems have conventions whereby different types of files in a package are installed in different direcotries. This is particularly the case on unix style systems. installCommandinstallCommand :: CommandUI InstallFlagswv CommandUI InstallFlags!install install :: PackageDescription -> LocalBuildInfo ->  CopyFlags -> IO ()wwPackageDescriptionLocalBuildInfo CopyFlagsIO()Perform the "./setup install" and "./setup copy" actions. Move files into place based on the prefix argument. FIX: nhc isn't implemented yet. &installinstall ::  Verbosity -> FilePath -> FilePath -> FilePath -> FilePath -> FilePath -> (FilePath, FilePath) -> PackageDescription -> IO ()yby  VerbosityFilePathFilePathFilePathFilePathFilePath(,)FilePathFilePathPackageDescriptionIO()Install for Hugs. For install, copy-prefix = prefix, but for copy they're different. The library goes in <copy-prefix>/lib/hugs/packages/<pkgname> (i.e. <prefix>/lib/hugs/packages/<pkgname> on the target system). Each executable goes in <copy-prefix>/lib/hugs/programs/<exename> (i.e. <prefix>/lib/hugs/programs/<exename> on the target system) with a script <copy-prefix>/bin/<exename> pointing at <prefix>/lib/hugs/programs/<exename>. insertinsert :: Package pkg => pkg -> PackageIndex pkg -> PackageIndex pkg|R|Packagepkgpkg PackageIndexpkg PackageIndexpkgInserts a single package into the index. This is equivalent to (but slightly quicker than) using mappend or merge with a singleton index. 'initialPathTemplateEnvinitialPathTemplateEnv :: PackageIdentifier ->  CompilerId -> &[(PathTemplateVariable, PathTemplate)]*~}PackageIdentifier CompilerId[](,)PathTemplateVariable PathTemplate>The initial environment has all the static stuff but no paths initialBuildStepsinitialBuildSteps :: FilePath -> PackageDescription -> LocalBuildInfo ->  Verbosity -> [PPSuffixHandler] -> IO ()2FilePathPackageDescriptionLocalBuildInfo Verbosity[]PPSuffixHandlerIO()infoinfo ::  Verbosity -> String -> IO () VerbosityStringIO()sMore detail on the operation of some action. We display these messages when the verbosity level is verbose inDirinDir :: Maybe FilePath -> IO () -> IO ()ڀMaybeFilePathIO()IO()0Executes the action in the specified directory. IncoherentInstancesIncoherentInstances ::  Extension Extension' includedir includedir :: InstallDirs dir -> dir InstallDirsdirdirImplicitParamsImplicitParams ::  Extension]Q Extension hugsProgram hugsProgram :: ProgramProgram' HtmldirVar HtmldirVar :: PathTemplateVariable PathTemplateVariable$The $htmldir path variable 'htmldirhtmldir :: InstallDirs dir -> dir InstallDirsdirdirhscolourVerbosityhscolourVerbosity ::  HscolourFlags -> Flag Verbosity1  HscolourFlagsFlag VerbosityhscolourVerbosehscolourVerbose ::  HscolourFlags ->  Verbosity HscolourFlags VerbosityhscolourProgramhscolourProgram :: ProgramProgram hscolourPref hscolourPref :: FilePath -> PackageDescription -> FilePath~FilePathPackageDescriptionFilePath hscolourHook hscolourHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  HscolourFlags -> IO ()f UserHooksPackageDescriptionLocalBuildInfo UserHooks HscolourFlagsIO()?Over-ride this hook to get different behavior during hscolour.  HscolourFlags HscolourFlags ::  Flag FilePath ->  Flag Bool ->  Flag FilePath ->  Verbosity -> Flag Verbosity ->  HscolourFlagsFlagFilePathFlagBoolFlagFilePath VerbosityFlag Verbosity HscolourFlags HscolourFlagsdata  HscolourFlags]hscolourExecutableshscolourExecutables ::  HscolourFlags ->  Flag Boolʈ HscolourFlagsFlagBoolhscolourDistPrefhscolourDistPref ::  HscolourFlags ->  Flag FilePathyU HscolourFlagsFlagFilePath hscolourCSS hscolourCSS ::  HscolourFlags ->  Flag FilePathډ HscolourFlagsFlagFilePathhscolourCommandhscolourCommand :: CommandUI HscolourFlagsuX CommandUI HscolourFlags"hscolour hscolour :: PackageDescription -> LocalBuildInfo -> [PPSuffixHandler] ->  HscolourFlags -> IO ()tPackageDescriptionLocalBuildInfo[]PPSuffixHandler HscolourFlagsIO() hsc2hsProgram hsc2hsProgram :: ProgramċProgramhookedProgramshookedPrograms ::  UserHooks ->  [Program]@# UserHooks[]ProgramfThese programs are detected at configure time. Arguments for them are added to the configure command. hookedPreProcessorshookedPreProcessors ::  UserHooks -> [PPSuffixHandler]< UserHooks[]PPSuffixHandlerHCustom preprocessors in addition to and overriding knownSuffixHandlers.  hmakeProgram hmakeProgram :: ProgramҍȍProgram HereDocuments HereDocuments ::  Extension& Extension happyProgram happyProgram :: ProgramtjProgramhaddockVerbosityhaddockVerbosity ::  HaddockFlags -> Flag Verbosityߎ HaddockFlagsFlag VerbosityhaddockVerbosehaddockVerbose ::  HaddockFlags ->  Verbositye HaddockFlags VerbosityhaddockProgramhaddockProgram :: ProgramӏɏProgram haddockPref haddockPref :: FilePath -> PackageDescription -> FilePathsHFilePathPackageDescriptionFilePath haddockName haddockName :: PackageDescription -> FilePathԐPackageDescriptionFilePathhaddockInternalhaddockInternal ::  HaddockFlags ->  Flag BoolxY HaddockFlagsFlagBoolhaddockHtmlLocationhaddockHtmlLocation ::  HaddockFlags ->  Flag String HaddockFlagsFlagStringhaddockHscolourCsshaddockHscolourCss ::  HaddockFlags ->  Flag FilePathu HaddockFlagsFlagFilePathhaddockHscolourhaddockHscolour ::  HaddockFlags ->  Flag Bool HaddockFlagsFlagBool haddockHook haddockHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  HaddockFlags -> IO ()*Փ UserHooksPackageDescriptionLocalBuildInfo UserHooks HaddockFlagsIO()>Over-ride this hook to get different behavior during haddock.  haddockHoogle haddockHoogle ::  HaddockFlags ->  Flag BoolȔ HaddockFlagsFlagBool HaddockFlags HaddockFlags ::  Flag Bool ->  Flag String ->  Flag Bool ->  Flag Bool ->  Flag FilePath ->  Flag Bool ->  Flag FilePath ->  Flag FilePath ->  Verbosity ->  Flag Verbosity ->  HaddockFlags– FlagBoolFlagStringFlagBoolFlagBoolFlagFilePathFlagBoolFlagFilePathFlagFilePath VerbosityFlag Verbosity HaddockFlags HaddockFlagsdata  HaddockFlagshaddockExecutableshaddockExecutables ::  HaddockFlags ->  Flag Boolh HaddockFlagsFlagBoolhaddockDistPrefhaddockDistPref ::  HaddockFlags ->  Flag FilePath HaddockFlagsFlagFilePath' haddockdir haddockdir :: InstallDirs dir -> diri InstallDirsdirdir haddockCss haddockCss ::  HaddockFlags ->  Flag FilePath HaddockFlagsFlagFilePathhaddockCommandhaddockCommand :: CommandUI HaddockFlagsy] CommandUI HaddockFlags"haddock haddock :: PackageDescription -> LocalBuildInfo -> [PPSuffixHandler] ->  HaddockFlags -> IO ()tPackageDescriptionLocalBuildInfo[]PPSuffixHandler HaddockFlagsIO()greencardProgramgreencardProgram :: ProgramʚProgram globalVersion globalVersion ::  GlobalFlags ->  Flag BoolG) GlobalFlagsFlagBoolGlobalPackageDBGlobalPackageDB ::  PackageDB PackageDBglobalNumericVersionglobalNumericVersion ::  GlobalFlags ->  Flag Bool*  GlobalFlagsFlagBool GlobalFlags GlobalFlags ::  Flag Bool ->  Flag Bool ->  GlobalFlagsƜFlagBoolFlagBool GlobalFlags GlobalFlagsdata  GlobalFlags;Flags that apply at the top level, not to any sub-command.  globalCommand globalCommand :: CommandUI GlobalFlags CommandUI GlobalFlags#ghcVerbosityOptionsghcVerbosityOptions ::  Verbosity -> [String]. Verbosity[]String ghcProgram ghcProgram :: ProgramxnProgram ghcPkgProgram ghcPkgProgram :: ProgramȞProgram# ghcOptions  ghcOptions :: LocalBuildInfo ->  BuildInfo -> FilePath -> [String]LLocalBuildInfo BuildInfoFilePath[]StringgetPersistBuildConfiggetPersistBuildConfig :: FilePath -> IO LocalBuildInfoFilePathIOLocalBuildInfoRead the localBuildInfoFile. Error if it doesn't exist. Also fail if the file containing LocalBuildInfo is older than the .cabal file, indicating that a re-configure is required. $getInstalledPackages getInstalledPackages ::  Verbosity ->  PackageDB -> ProgramConfiguration -> &IO (PackageIndex InstalledPackageInfo) Verbosity PackageDBProgramConfigurationIO PackageIndexInstalledPackageInfo#getInstalledPackages getInstalledPackages ::  Verbosity ->  PackageDB -> ProgramConfiguration -> &IO (PackageIndex InstalledPackageInfo) Verbosity PackageDBProgramConfigurationIO PackageIndexInstalledPackageInfogetInstalledPackages getInstalledPackages ::  Verbosity -> Compiler ->  PackageDB -> ProgramConfiguration -> .IO (Maybe (PackageIndex InstalledPackageInfo))Jܣ VerbosityCompiler PackageDBProgramConfigurationIOMaybe PackageIndexInstalledPackageInfoGenericsGenerics ::  Extension ExtensionGeneralizedNewtypeDerivingGeneralizedNewtypeDeriving ::  Extension ExtensionGADTsGADTs ::  ExtensionF: ExtensionFunctionalDependenciesFunctionalDependencies ::  Extension ExtensionfromUTF8fromUTF8 :: String -> String StringString'fromPathTemplatefromPathTemplate ::  PathTemplate -> FilePathq PathTemplateFilePath8Convert back to a path, any remaining vars are included fromListfromList :: Package pkg => [pkg] -> PackageIndex pkg\)Packagepkg[]pkg PackageIndexpkgjBuild an index out of a bunch of Packages. If there are duplicates, later ones mask earlier ones. fromFlagOrDefaultfromFlagOrDefault :: a -> Flag a -> aA-aFlagaafromFlagfromFlag :: Flag a -> aFlagaa FoundOnSystem FoundOnSystem :: FilePath -> ProgramLocationFilePathProgramLocation;The location of the program, as located by searching PATH. ForeignFunctionInterfaceForeignFunctionInterface ::  Extension ExtensionFlexibleInstancesFlexibleInstances ::  Extension ExtensionFlexibleContextsFlexibleContexts ::  Extensionui ExtensionflattenPackageDescriptionflattenPackageDescription :: GenericPackageDescription -> PackageDescription5GenericPackageDescriptionPackageDescriptionFlatten a generic package description by ignoring all conditions and just join the field descriptors into on package description. Note, however, that this may lead to inconsistent field values, since all values are joined into one field, which may not be possible in the original package description, due to the use of exclusive choices (if ... else ...). XXX: One particularly tricky case is defaulting. In the original package description, e.g., the source directory might either be the default or a certain, explicitly set path. Since defaults are filled in only after the package has been resolved and when no explicit value has been set, the default path will be missing from the package description returned by this function. flagToOptimisationLevelflagToOptimisationLevel ::  Maybe String -> OptimisationLevelMaybeStringOptimisationLevel flagToMaybe flagToMaybe :: Flag a -> Maybe a# FlagaMaybea flagToList flagToList :: Flag a -> [a]qFlaga[]aFlagFlag :: a -> Flag aٯȯaFlagaFlagdata Flag aAll flags are monoids, they come in two flavours: 1. list flags eg
--ghc-option=foo --ghc-option=bar
gives us all the values [foo, bar] 2. singular value flags, eg:
--enable-foo --disable-foo
gives us Just False So this Flag type is for the latter singular kind of flag. Its monoid instance gives us the behaviour where it starts out as NoFlag and later flags override earlier ones. Flagtype Flag = StringfindProgramVersionfindProgramVersion :: ProgArg -> String -> String ->  Verbosity -> FilePath -> IO (Maybe Version)ProgArgStringString VerbosityFilePathIOMaybeVersionLook for a program and try to find it's version number. It can accept either an absolute path or the name of a program binary, in which case we will look for the program on the path. findProgramOnPathfindProgramOnPath :: FilePath ->  Verbosity -> IO (Maybe FilePath)a0FilePath VerbosityIOMaybeFilePath Look for a program on the path. findPackageDescfindPackageDesc :: FilePath ->  IO FilePathFilePathIOFilePathYFind a package description file in the given directory. Looks for .cabal files. findHookedPackageDescfindHookedPackageDesc :: FilePath -> IO (Maybe FilePath)ϵFilePathIOMaybeFilePath`Find auxiliary package information in the given directory. Looks for .buildinfo files. findFileWithExtension' findFileWithExtension' :: [String] ->  [FilePath] -> FilePath -> IO (Maybe (FilePath, FilePath))X[]String[]FilePathFilePathIOMaybe(,)FilePathFilePathfindFileWithExtension findFileWithExtension :: [String] ->  [FilePath] -> FilePath -> IO (Maybe FilePath)<[]String[]FilePathFilePathIOMaybeFilePathfindFilefindFile ::  [FilePath] -> FilePath ->  IO FilePathӸ[]FilePathFilePathIOFilePathfinalizePackageDescriptionfinalizePackageDescription :: Package pkg => FlagAssignment -> Maybe (PackageIndex pkg) -> OS -> Arch ->  CompilerId ->  [Dependency] -> GenericPackageDescription -> 8Either [Dependency] (PackageDescription, FlagAssignment)"PackagepkgFlagAssignmentMaybe PackageIndexpkgOSArch CompilerId[] DependencyGenericPackageDescriptionEither[] Dependency(,)PackageDescriptionFlagAssignmentCreate a package description with all configurations resolved. This function takes a GenericPackageDescription and several environment parameters and tries to generate PackageDescription by finding a flag assignment that result in satisfiable dependencies. It takes as inputs a not necessarily complete specifications of flags assignments, an optional package index as well as platform parameters. If some flags are not assigned explicitly, this function will try to pick an assignment that causes this function to succeed. The package index is optional since on some platforms we cannot determine which packages have been installed before. When no package index is supplied, every dependency is assumed to be satisfiable, therefore all not explicitly assigned flags will get their default values. This function will fail if it cannot find a flag assignment that leads to satisfiable dependencies. (It will not try alternative assignments for explicitly specified flags.) In case of failure it will return a minimum number of dependencies that could not be satisfied. On success, it will return the package description and the full flag assignment chosen. ffihugsProgramffihugsProgram :: ProgramۿѿProgramfalseArgfalseArg :: SFlags -> LFlags ->  Description -> (b -> Flag Bool) -> (Flag Bool -> b -> b) ->  OptDescr bSFlagsLFlags DescriptionbFlagBoolFlagBoolbbOptDescrbextensionsToFlagsextensionsToFlags :: Compiler ->  [Extension] -> [Flag]bCompiler[] Extension[]FlagGFor the given compiler, return the flags for the supported extensions.  Extensiondata  Extension This represents language extensions beyond Haskell 98 that are supported by some implementations, usually in some special mode. ExtensibleRecordsExtensibleRecords ::  Extension ExtensionExtendedDefaultRulesExtendedDefaultRules ::  ExtensionG; Extension explanation explanation ::  PackageCheck -> String PackageCheckString explanation explanation ::  PackageCheck -> String+ PackageCheckString explanation explanation ::  PackageCheck -> String PackageCheckString explanation explanation ::  PackageCheck -> String PackageCheckStringExistentialQuantificationExistentialQuantification ::  Extension{o Extension exeExtension exeExtension :: StringStringeExtension for executable files (typically "" on Unix and "exe" on Windows or OS/2) equating equating :: Eq a => (b -> a) -> b -> b -> BoolEqababbBoolemptyUserHooksemptyUserHooks ::  UserHooks UserHooks)Empty UserHooks which do nothing. emptyTestFlagsemptyTestFlags ::  TestFlags TestFlagsemptySDistFlagsemptySDistFlags ::  SDistFlags SDistFlagsemptyRegisterFlagsemptyRegisterFlags ::  RegisterFlagsP@ RegisterFlagsemptyProgramConfigurationemptyProgramConfiguration :: ProgramConfigurationProgramConfigurationemptyMakefileFlagsemptyMakefileFlags ::  MakefileFlags8( MakefileFlagsemptyInstallFlagsemptyInstallFlags ::  InstallFlags InstallFlagsemptyHscolourFlagsemptyHscolourFlags ::  HscolourFlags HscolourFlagsemptyHaddockFlagsemptyHaddockFlags ::  HaddockFlagsbS HaddockFlagsemptyGlobalFlagsemptyGlobalFlags ::  GlobalFlags GlobalFlagsEmptyDataDeclsEmptyDataDecls ::  Extension  ExtensionemptyCopyFlagsemptyCopyFlags ::  CopyFlagsl` CopyFlagsemptyConfigFlagsemptyConfigFlags ::  ConfigFlags ConfigFlagsemptyCleanFlagsemptyCleanFlags ::  CleanFlags$ CleanFlagsemptyBuildFlagsemptyBuildFlags ::  BuildFlags~q BuildFlags' dynlibdir dynlibdir :: InstallDirs dir -> dir InstallDirsdirdirdotToSepdotToSep :: String -> StringO<StringString' DocdirVar DocdirVar :: PathTemplateVariablePathTemplateVariable#The $docdir path variable 'docdirdocdir :: InstallDirs dir -> dir?# InstallDirsdirdir dllExtension dllExtension :: StringStringwExtension for dynamically linked (or shared) libraries (typically "so" on Unix and "dll" on Windows) DisambiguateRecordFieldsDisambiguateRecordFields ::  Extensionl` ExtensiondieWithLocation dieWithLocation :: FilePath ->  Maybe Int -> String -> IO aFilePathMaybeIntStringIOadiedie :: String -> IO ao[StringIOa Descriptiontype  Description = StringDeriveDataTypeableDeriveDataTypeable ::  Extension ExtensiondependencyInconsistenciesdependencyInconsistencies :: PackageFixedDeps pkg => PackageIndex pkg -> *[(String, [(PackageIdentifier, Version)])]6PackageFixedDepspkg PackageIndexpkg[](,)String[](,)PackageIdentifierVersionGiven a package index where we assume we want to use all the packages (use dependencyClosure if you need to get such a index subset) find out if the dependencies within it use consistent versions of each package. Return all cases where multiple packages depend on different versions of some other package. Each element in the result is a package name along with the packages that depend on it and the versions they require. These are guaranteed to be distinct. dependencyGraphdependencyGraph :: PackageFixedDeps pkg => PackageIndex pkg -> G(Graph, Vertex -> PackageIdentifier, PackageIdentifier -> Maybe Vertex)LPackageFixedDepspkg PackageIndexpkg(,,)GraphVertexPackageIdentifierPackageIdentifierMaybeVertexBuilds a graph of the package dependencies. Dependencies on other packages that are in the index are discarded. You can check if there are any such dependencies with brokenPackages. dependencyCyclesdependencyCycles :: PackageFixedDeps pkg => PackageIndex pkg -> [[pkg]]PackageFixedDepspkg PackageIndexpkg[][]pkgFind if there are any cycles in the dependency graph. If there are no cycles the result is []. This actually computes the strongly connected components. So it gives us a list of groups of packages where within each group they all depend on each other, directly or indirectly. dependencyClosuredependencyClosure :: PackageFixedDeps pkg => PackageIndex pkg -> [PackageIdentifier] -> 6Either (PackageIndex pkg) [(pkg, [PackageIdentifier])]NPackageFixedDepspkg PackageIndexpkg[]PackageIdentifierEither PackageIndexpkg[](,)pkg[]PackageIdentifierTries to take the transative closure of the package dependencies. If the transative closure is complete then it returns that subset of the index. Otherwise it returns the broken packages as in brokenPackages.
  • Note that if the result is Right [] it is because at least one of the original given PackageIdentifiers do not occur in the index.
deletePackageNamedeletePackageName :: Package pkg => String -> PackageIndex pkg -> PackageIndex pkgcPackagepkgString PackageIndexpkg PackageIndexpkgERemoves all packages with this (case-sensitive) name from the index. deletePackageIddeletePackageId :: Package pkg => PackageIdentifier -> PackageIndex pkg -> PackageIndex pkgPackagepkgPackageIdentifier PackageIndexpkg PackageIndexpkg)Removes a single package from the index. deleteDependencydeleteDependency :: Package pkg =>  Dependency -> PackageIndex pkg -> PackageIndex pkgPackagepkg Dependency PackageIndexpkg PackageIndexpkg@Removes all packages satisfying this dependency from the index. defaultTestFlagsdefaultTestFlags ::  TestFlagszn TestFlagsdefaultSDistFlagsdefaultSDistFlags ::  SDistFlags SDistFlagsdefaultRegisterFlagsdefaultRegisterFlags ::  RegisterFlagsB2 RegisterFlagsdefaultProgramConfigurationdefaultProgramConfiguration :: ProgramConfigurationProgramConfigurationdefaultPackageDescdefaultPackageDesc ::  Verbosity ->  IO FilePathO1 VerbosityIOFilePath9Package description file (pkgname.cabal) defaultMakefileFlagsdefaultMakefileFlags ::  MakefileFlags MakefileFlagsdefaultInstallFlagsdefaultInstallFlags ::  InstallFlagsXI InstallFlags'defaultInstallDirs defaultInstallDirs :: CompilerFlavor -> Bool -> Bool -> IO InstallDirTemplates+CompilerFlavorBoolBoolIOInstallDirTemplatesdefaultHscolourFlagsdefaultHscolourFlags ::  HscolourFlags HscolourFlagsdefaultHookedPackageDescdefaultHookedPackageDesc :: IO (Maybe FilePath)IOMaybeFilePathPOptional auxiliary package information file (pkgname.buildinfo) defaultHaddockFlagsdefaultHaddockFlags ::  HaddockFlags HaddockFlagsdefaultGlobalFlagsdefaultGlobalFlags ::  GlobalFlags/! GlobalFlagsdefaultDistPrefdefaultDistPref :: FilePathzFilePath defaultDistPrefdefaultDistPref :: FilePathFilePathdefaultCopyFlagsdefaultCopyFlags ::  CopyFlags5) CopyFlagsdefaultConfigFlagsdefaultConfigFlags :: ProgramConfiguration ->  ConfigFlagsProgramConfiguration ConfigFlagsdefaultCleanFlagsdefaultCleanFlags ::  CleanFlags-  CleanFlagsdefaultBuildFlagsdefaultBuildFlags ::  BuildFlags~ BuildFlagsdebugdebug ::  Verbosity -> String -> IO () VerbosityStringIO()pDetailed internal debugging information We display these messages when the verbosity level is deafening dateToSnapshotNumberdateToSnapshotNumber ::  CalendarTime -> Int CalendarTimeIntGiven a date produce a corresponding integer representation. For example given a date 18032008 produce the number 20080318. ' DatasubdirVar DatasubdirVar :: PathTemplateVariablePathTemplateVariable'The $datasubdir path variable ' datasubdir datasubdir :: InstallDirs dir -> dirq InstallDirsdirdir' DatadirVar DatadirVar :: PathTemplateVariablePathTemplateVariable$The $datadir path variable 'datadirdatadir :: InstallDirs dir -> dirf InstallDirsdirdir currentDir currentDir :: FilePathFilePathThe path name that represents the current directory. In Unix, it's ".", but this is system-specific. (E.g. AmigaOS uses the empty string "" for the current directory.) createDirectoryIfMissingVerbose createDirectoryIfMissingVerbose ::  Verbosity -> Bool -> FilePath -> IO ()Q) VerbosityBoolFilePathIO() createArchive createArchive ::  Verbosity -> PackageDescription -> Maybe LocalBuildInfo -> FilePath -> FilePath ->  IO FilePathu VerbosityPackageDescriptionMaybeLocalBuildInfoFilePathFilePathIOFilePathFCreate an archive from a tree of source files, and clean up the tree.  cppProgram cppProgram :: ProgramProgram cpphsProgram cpphsProgram :: ProgramSIProgramCPPCPP ::  Extension Extension copyVerbosity copyVerbosity ::  CopyFlags -> Flag Verbosity CopyFlagsFlag Verbosity copyVerbose copyVerbose ::  CopyFlags ->  Verbosityo CopyFlags VerbosityCopyToCopyTo :: FilePath -> CopyDestFilePathCopyDest'CopyToCopyTo :: FilePath -> CopyDestP9FilePathCopyDest CopyPrefix CopyPrefix :: FilePath -> CopyDestFilePathCopyDest' CopyPrefix CopyPrefix :: FilePath -> CopyDest(FilePathCopyDestcopyHookcopyHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  CopyFlags -> IO ()+ UserHooksPackageDescriptionLocalBuildInfo UserHooks CopyFlagsIO();Over-ride this hook to get different behavior during copy.  CopyFlags CopyFlags :: CopyDest ->  Flag CopyDest ->  Flag FilePath ->  Verbosity -> Flag Verbosity ->  CopyFlagsuCopyDestFlagCopyDestFlagFilePath VerbosityFlag Verbosity CopyFlags CopyFlagsdata  CopyFlagsMFlags to copy: (destdir, copy-prefix (backwards compat), verbosity) copyFileVerbose copyFileVerbose ::  Verbosity -> FilePath -> FilePath -> IO ()} VerbosityFilePathFilePathIO() copyFiles  copyFiles ::  Verbosity -> FilePath -> [(FilePath, FilePath)] -> IO ()s0 VerbosityFilePath[](,)FilePathFilePathIO()Copies a bunch of files to a target directory, preserving the directory structure in the target location. The target directories are created if they do not exist. The files are identified by a pair of base directory and a path relative to that base. It is only the relative part that is preserved in the destination. For example:
copyFiles normal "dist/src"
   [("", "src/Foo.hs"), ("dist/build/", "src/Bar.hs")]
This would copy "src/Foo.hs" to "dist/src/src/Foo.hs" and copy "dist/build/src/Bar.hs" to "dist/src/src/Bar.hs". This operation is not atomic. Any IO failure during the copy (including any missing source files) leaves the target in an unknown state so it is best to use it with a freshly created directory so that it can be simply deleted if anything goes wrong.  copyDistPref copyDistPref ::  CopyFlags ->  Flag FilePath  CopyFlagsFlagFilePathcopyDirectoryRecursiveVerbose copyDirectoryRecursiveVerbose ::  Verbosity -> FilePath -> FilePath -> IO () VerbosityFilePathFilePathIO() copyDest' copyDest' ::  CopyFlags ->  Flag CopyDestR2 CopyFlagsFlagCopyDestcopyDestcopyDest ::  CopyFlags -> CopyDest CopyFlagsCopyDestCopyDestdata CopyDest1The location prefix for the copy command. 'CopyDestdata CopyDestU1The location prefix for the copy command.  copyCommand copyCommand :: CommandUI CopyFlags CommandUI CopyFlagsConstrainedClassMethodsConstrainedClassMethods ::  ExtensionUI ExtensionconfigVerbosityconfigVerbosity ::  ConfigFlags -> Flag Verbosity ConfigFlagsFlag Verbosityverbosity level  configVerbose configVerbose ::  ConfigFlags ->  VerbosityjO ConfigFlags Verbosityverbosity level (deprecated) configVanillaLibconfigVanillaLib ::  ConfigFlags ->  Flag Bool  ConfigFlagsFlagBoolEnable vanilla library configUserInstallconfigUserInstall ::  ConfigFlags ->  Flag Bool ConfigFlagsFlagBoolThe --user/--global flag configureOptionsconfigureOptions :: ShowOrParseArgs -> [OptionField ConfigFlags]n8ShowOrParseArgs[] OptionField ConfigFlagsConfiguredProgram ConfiguredProgram :: String ->  Maybe Version ->  [ProgArg] -> ProgramLocation -> ConfiguredProgramq!StringMaybeVersion[]ProgArgProgramLocationConfiguredProgramConfiguredProgramdata ConfiguredProgramconfigureCommandconfigureCommand :: ProgramConfiguration -> CommandUI ConfigFlagsd1ProgramConfiguration CommandUI ConfigFlags configureArgs configureArgs :: Bool ->  ConfigFlags -> [String]Bool ConfigFlags[]StringWArguments to pass to a configure script, e.g. generated by autoconf. configureAllKnownProgramsconfigureAllKnownPrograms ::  Verbosity -> ProgramConfiguration -> IO ProgramConfiguration0 VerbosityProgramConfigurationIOProgramConfigurationKTry to configure all the known programs that have not yet been configured. % configure  configure ::  Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> #IO (Compiler, ProgramConfiguration)> VerbosityMaybeFilePathMaybeFilePathProgramConfigurationIO(,)CompilerProgramConfiguration$ configure  configure ::  Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> #IO (Compiler, ProgramConfiguration)x VerbosityMaybeFilePathMaybeFilePathProgramConfigurationIO(,)CompilerProgramConfiguration& configure  configure ::  Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> #IO (Compiler, ProgramConfiguration)) VerbosityMaybeFilePathMaybeFilePathProgramConfigurationIO(,)CompilerProgramConfiguration# configure  configure ::  Verbosity -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration -> #IO (Compiler, ProgramConfiguration)c VerbosityMaybeFilePathMaybeFilePathProgramConfigurationIO(,)CompilerProgramConfiguration configure configure :: F(Either GenericPackageDescription PackageDescription, HookedBuildInfo) ->  ConfigFlags -> IO LocalBuildInfo  (,)EitherGenericPackageDescriptionPackageDescriptionHookedBuildInfo ConfigFlagsIOLocalBuildInfoZPerform the "./setup configure" action. Returns the .setup-config file. configStripExesconfigStripExes ::  ConfigFlags ->  Flag Boolf H  ConfigFlagsFlagBoolEnable executable stripping configSplitObjsconfigSplitObjs ::  ConfigFlags ->  Flag Bool   ConfigFlagsFlagBoolEnable -split-objs with GHC configSharedLibconfigSharedLib ::  ConfigFlags ->  Flag Bool   ConfigFlagsFlagBoolBuild shared library configScratchDirconfigScratchDir ::  ConfigFlags ->  Flag FilePath@   ConfigFlagsFlagFilePathconfigProgSuffixconfigProgSuffix ::  ConfigFlags -> Flag PathTemplate   ConfigFlagsFlag PathTemplateInstalled executable suffix. configProgramsconfigPrograms ::  ConfigFlags -> ProgramConfiguration \  ConfigFlagsProgramConfiguration All programs that cabal may run configProgramPathsconfigProgramPaths ::  ConfigFlags -> [(String, FilePath)]E ConfigFlags[](,)StringFilePathuser specifed programs paths configProgramArgsconfigProgramArgs ::  ConfigFlags -> [(String, [String])] ConfigFlags[](,)String[]Stringuser specifed programs args configProgPrefixconfigProgPrefix ::  ConfigFlags -> Flag PathTemplate ConfigFlagsFlag PathTemplateInstalled executable prefix.  configProfLib configProfLib ::  ConfigFlags ->  Flag BoolP2 ConfigFlagsFlagBool Enable profiling in the library  configProfExe configProfExe ::  ConfigFlags ->  Flag Bool ConfigFlagsFlagBool%Enable profiling in the executables. configPackageDBconfigPackageDB ::  ConfigFlags -> Flag PackageDBz ConfigFlagsFlag PackageDBWhich package DB to use configOptimizationconfigOptimization ::  ConfigFlags -> Flag OptimisationLevelV+ ConfigFlagsFlagOptimisationLevelEnable optimization. configInstallDirsconfigInstallDirs ::  ConfigFlags -> InstallDirs (Flag PathTemplate) ConfigFlags InstallDirsFlag PathTemplateInstallation paths  configHcPkg configHcPkg ::  ConfigFlags ->  Flag FilePath ConfigFlagsFlagFilePathgiven hc-pkg location  configHcPath configHcPath ::  ConfigFlags ->  Flag FilePathJ( ConfigFlagsFlagFilePathgiven compiler location configHcFlavorconfigHcFlavor ::  ConfigFlags -> Flag CompilerFlavor ConfigFlagsFlagCompilerFlavor3The "flavor" of the compiler, sugh as GHC or Hugs.  configGHCiLib configGHCiLib ::  ConfigFlags ->  Flag Bool ConfigFlagsFlagBool"Enable compiling library for GHCi  ConfigFlags< ConfigFlags :: ProgramConfiguration -> [(String, FilePath)] -> [(String, [String])] -> Flag CompilerFlavor ->  Flag FilePath ->  Flag FilePath ->  Flag Bool ->  Flag Bool ->  Flag Bool ->  Flag Bool ->  [String] ->  Flag OptimisationLevel ->  Flag PathTemplate ->  Flag PathTemplate -> InstallDirs (Flag PathTemplate) ->  Flag FilePath ->  [FilePath] ->  [FilePath] ->  Flag FilePath ->  Verbosity -> Flag Verbosity ->  Flag Bool -> Flag PackageDB ->  Flag Bool ->  Flag Bool ->  Flag Bool ->  [Dependency] -> FlagAssignment ->  ConfigFlagsProgramConfiguration[](,)StringFilePath[](,)String[]StringFlagCompilerFlavorFlagFilePathFlagFilePathFlagBoolFlagBoolFlagBoolFlagBool[]StringFlagOptimisationLevelFlag PathTemplateFlag PathTemplate InstallDirsFlag PathTemplateFlagFilePath[]FilePath[]FilePathFlagFilePath VerbosityFlag VerbosityFlagBoolFlag PackageDBFlagBoolFlagBoolFlagBool[] DependencyFlagAssignment ConfigFlags ConfigFlagsdata  ConfigFlags9$Flags to configure command configExtraLibDirsconfigExtraLibDirs ::  ConfigFlags ->  [FilePath] ConfigFlags[]FilePath#path to search for extra libraries configExtraIncludeDirsconfigExtraIncludeDirs ::  ConfigFlags ->  [FilePath]| ConfigFlags[]FilePath path to search for header files configDistPrefconfigDistPref ::  ConfigFlags ->  Flag FilePathC! ConfigFlagsFlagFilePathdist prefix configDependency configDependency ::  Verbosity -> !PackageIndex InstalledPackageInfo ->  Dependency -> IO PackageIdentifier` Verbosity PackageIndexInstalledPackageInfo DependencyIOPackageIdentifierHTest for a package dependency and record the version we have installed. configConstraintsconfigConstraints ::  ConfigFlags ->  [Dependency]4 ConfigFlags[] Dependency(Additional constraints for dependencies configConfigureArgsconfigConfigureArgs ::  ConfigFlags -> [String] ConfigFlags[]String&Extra arguments to configure configConfigurationsFlagsconfigConfigurationsFlags ::  ConfigFlags -> FlagAssignment   ConfigFlagsFlagAssignmentconfigCompilerAuxconfigCompilerAux ::  ConfigFlags -> #IO (Compiler, ProgramConfiguration)d!'! ConfigFlagsIO(,)CompilerProgramConfigurationconfigCompilerconfigCompiler :: Maybe CompilerFlavor -> Maybe FilePath -> Maybe FilePath -> ProgramConfiguration ->  Verbosity -> #IO (Compiler, ProgramConfiguration)"Q"MaybeCompilerFlavorMaybeFilePathMaybeFilePathProgramConfiguration VerbosityIO(,)CompilerProgramConfigurationconfHook confHook ::  UserHooks -> F(Either GenericPackageDescription PackageDescription, HookedBuildInfo) ->  ConfigFlags -> IO LocalBuildInfo'$# UserHooks(,)EitherGenericPackageDescriptionPackageDescriptionHookedBuildInfo ConfigFlagsIOLocalBuildInfo@Over-ride this hook to get different behavior during configure. compilerVersioncompilerVersion :: Compiler -> Version$$CompilerVersion' CompilerVar CompilerVar :: PathTemplateVariableA%*%PathTemplateVariable5The compiler name and version, eg ghc-6.6.1  compilerId compilerId :: Compiler ->  CompilerId%%Compiler CompilerIdcompilerFlavorcompilerFlavor :: Compiler -> CompilerFlavorf&I&CompilerCompilerFlavorcompilerExtensionscompilerExtensions :: Compiler -> [(Extension, String)]'&Compiler[](,) ExtensionStringcompilercompiler :: LocalBuildInfo -> Compilery'\'LocalBuildInfoCompiler!The compiler we're building with CompilerCompiler ::  CompilerId -> [(Extension, String)] -> CompilerG(( CompilerId[](,) ExtensionStringCompilerCompilerdata Compiler{( comparing  comparing ::  Ord a => (b -> a) -> b -> b -> Ordering)(OrdababbOrdering commandUsage commandUsage :: CommandUI flags -> String -> String)) CommandUIflagsStringString)The useage line summary for this command  CommandUI CommandUI :: String -> String -> String -> String -> Maybe (String -> String) -> flags -> ShowOrParseArgs -> [OptionField flags] -> CommandUI flagsY+* StringStringStringStringMaybeStringStringflagsShowOrParseArgs[] OptionFieldflags CommandUIflags CommandUIdata  CommandUI flags+commandSynopsiscommandSynopsis :: CommandUI flags -> String,+ CommandUIflagsStringCA short, one line description of the command to use in help texts.  commandsRun  commandsRun ::  CommandUI a -> [Command action] -> [String] -> %CommandParse (a, CommandParse action)n-- CommandUIa[]Commandaction[]String CommandParse(,)a CommandParseactioncommandShowOptionscommandShowOptions :: CommandUI flags -> flags -> [String].- CommandUIflagsflags[]String;Show flags in the standard long option command line format CommandReadyToGoCommandReadyToGo :: flags -> CommandParse flags..flags CommandParseflags CommandParsedata  CommandParse flags/commandOptionscommandOptions :: CommandUI flags -> ShowOrParseArgs -> [OptionField flags]// CommandUIflagsShowOrParseArgs[] OptionFieldflags'All the Option fields for this command  commandName commandName :: CommandUI flags -> String0n0 CommandUIflagsStringbThe name of the command as it would be entered on the command line. For example "build".  CommandList CommandList :: [String] -> CommandParse flagsx1P1[]String CommandParseflags CommandHelp CommandHelp :: String -> String -> CommandParse flags21StringString CommandParseflags CommandErrors CommandErrors :: [String] -> CommandParse flags2x2[]String CommandParseflagscommandDescriptioncommandDescription :: CommandUI flags -> Maybe (String -> String)N33 CommandUIflagsMaybeStringString<Additional explanation of the command to use in help texts. commandDefaultFlagscommandDefaultFlags :: CommandUI flags -> flags43 CommandUIflagsflagsInitial / empty flags commandAddActioncommandAddAction :: Monoid flags => CommandUI flags -> (flags -> [String] -> action) -> Command action*54Monoidflags CommandUIflagsflags[]StringactionCommandactionCommanddata Command actionc5'combineInstallDirs combineInstallDirs ::  (a -> b -> c) ->  InstallDirs a ->  InstallDirs b ->  InstallDirs cH66abc InstallDirsa InstallDirsb InstallDirsccleanVerbositycleanVerbosity ::  CleanFlags -> Flag Verbosity66 CleanFlagsFlag Verbosity cleanVerbose cleanVerbose ::  CleanFlags ->  VerbosityE7+7 CleanFlags Verbosity cleanSaveConf cleanSaveConf ::  CleanFlags ->  Flag Bool77 CleanFlagsFlagBool cleanHook cleanHook ::  UserHooks -> PackageDescription -> Maybe LocalBuildInfo ->  UserHooks ->  CleanFlags -> IO ()8z8 UserHooksPackageDescriptionMaybeLocalBuildInfo UserHooks CleanFlagsIO()<Over-ride this hook to get different behavior during clean.  CleanFlags  CleanFlags ::  Flag Bool ->  Flag FilePath ->  Verbosity -> Flag Verbosity ->  CleanFlags99FlagBoolFlagFilePath VerbosityFlag Verbosity CleanFlags CleanFlagsdata  CleanFlags7: cleanDistPref cleanDistPref ::  CleanFlags ->  Flag FilePath:: CleanFlagsFlagFilePath cleanCommand cleanCommand :: CommandUI CleanFlags%; ; CommandUI CleanFlagschoiceOptFromEnumchoiceOptFromEnum :: %(Bounded b, Enum b, Show b, Eq b) => #MkOptDescr (a -> b) (b -> a -> a) a<;BoundedbEnumbShowbEqb MkOptDescrabbaaacreate a Choice option out of an enumeration type. As long flags, the Show output is used. As short flags, the first character which does not conflict with a previous one is used.  choiceOpt choiceOpt :: Eq b => [(b, OptFlags, Description)] -> #MkOptDescr (a -> b) (b -> a -> a) a=D=Eqb[](,,)bOptFlags Description MkOptDescrabbaaacreate a Choice option  ChoiceOpt ChoiceOpt :: ,[(Description, OptFlags, a -> a, a -> Bool)] ->  OptDescr aw>,>[](,,,) DescriptionOptFlagsaaaBoolOptDescracheckPersistBuildConfigcheckPersistBuildConfig :: FilePath -> FilePath -> IO ()?>FilePathFilePathIO()MCheck that localBuildInfoFile is up-to-date with respect to the .cabal file. checkPackageFilescheckPackageFiles :: PackageDescription -> FilePath -> IO [PackageCheck]*@?PackageDescriptionFilePathIO[] PackageCheckSanity check things that requires IO. It looks at the files in the package and expects to find the package unpacked in at the given filepath.  checkPackage checkPackage :: GenericPackageDescription -> Maybe PackageDescription -> [PackageCheck]ALAGenericPackageDescriptionMaybePackageDescription[] PackageCheckCheck for common mistakes and problems in package descriptions. This is the standard collection of checks covering all apsects except for checks that require looking at files within the package. For those see checkPackageFiles. It requires the GenericPackageDescription and optionally a particular configuration of that package. If you pass Nothing then we just check a version of the generic description using flattenPackageDescription. checkConfiguredPackagecheckConfiguredPackage :: PackageDescription -> [PackageCheck]DCPackageDescription[] PackageCheck chattyTry chattyTry :: String -> IO () -> IO ()DvDStringIO()IO()VPerform an IO action, catching any IO exceptions and printing an error if one occurs. ccLdOptionsBuildInfoccLdOptionsBuildInfo :: [String] -> [String] ->  BuildInfoEiE[]String[]String BuildInfoMakes a BuildInfo from C compiler and linker flags. This can be used with the output from configuration programs like pkg-config and similar package-specific programs like mysql-config, freealut-config etc. For example:
ccflags <- rawSystemProgramStdoutConf verbosity prog conf ["--cflags"]
ldflags <- rawSystemProgramStdoutConf verbosity prog conf ["--libs"]
return (ccldOptionsBuildInfo (words ccflags) (words ldflags))
 cabalVersion cabalVersion :: VersionGGVersioncabalBootstrappingcabalBootstrapping :: BoolGGBool c2hsProgram c2hsProgram :: ProgramCH9HProgrambuiltinProgramsbuiltinPrograms ::  [Program]HH[]ProgramUThe default list of programs. These programs are typically used internally to Cabal. buildVerbositybuildVerbosity ::  BuildFlags -> Flag Verbosity{IYI BuildFlagsFlag Verbosity buildVerbose buildVerbose ::  BuildFlags ->  VerbosityII BuildFlags VerbositybuildProgramArgsbuildProgramArgs ::  BuildFlags -> [(String, [String])]J`J BuildFlags[](,)String[]String buildHook buildHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  BuildFlags -> IO ()KFK UserHooksPackageDescriptionLocalBuildInfo UserHooks BuildFlagsIO()=Over-ride this hook to gbet different behavior during build.  BuildFlags  BuildFlags :: [(String, [String])] ->  Flag FilePath ->  Verbosity -> Flag Verbosity ->  BuildFlagsLL[](,)String[]StringFlagFilePath VerbosityFlag Verbosity BuildFlags BuildFlagsdata  BuildFlagsM buildDistPref buildDistPref ::  BuildFlags ->  Flag FilePathM}M BuildFlagsFlagFilePathbuildDirbuildDir :: LocalBuildInfo -> FilePathNMLocalBuildInfoFilePathWhere to build the package.  buildCommand buildCommand :: ProgramConfiguration -> CommandUI BuildFlagsNNProgramConfiguration CommandUI BuildFlags%build build :: PackageDescription -> LocalBuildInfo ->  Verbosity -> IO ()OROPackageDescriptionLocalBuildInfo VerbosityIO()QFIX: For now, the target must contain a main module. Not used ATM. Re-add later. $build build :: PackageDescription -> LocalBuildInfo ->  Verbosity -> IO ()P`PPackageDescriptionLocalBuildInfo VerbosityIO()HBuilding a package for JHC. Currently C source files are not supported. &build build :: PackageDescription -> LocalBuildInfo ->  Verbosity -> IO ()QeQPackageDescriptionLocalBuildInfo VerbosityIO()Building a package for Hugs. #build build :: PackageDescription -> LocalBuildInfo ->  Verbosity -> IO (){R?RPackageDescriptionLocalBuildInfo VerbosityIO()WBuilding for GHC. If .ghc-packages exists and is readable, add it to the command-line. build build :: PackageDescription -> LocalBuildInfo ->  BuildFlags -> [PPSuffixHandler] -> IO ()SqSPackageDescriptionLocalBuildInfo BuildFlags[]PPSuffixHandlerIO()5Build the libraries and executables in this package. brokenPackagesbrokenPackages :: PackageFixedDeps pkg => PackageIndex pkg -> [(pkg, [PackageIdentifier])]TTPackageFixedDepspkg PackageIndexpkg[](,)pkg[]PackageIdentifierAll packages that have dependencies that are not in the index. Returns such packages along with the dependencies that they're missing. breaksbreaks ::  (a -> Bool) -> [a] -> [[a]]UUaBool[]a[][]aboolOpt'boolOpt' :: OptFlags -> OptFlags -> 3MkOptDescr (a -> Flag Bool) (Flag Bool -> a -> a) aVVOptFlagsOptFlags MkOptDescraFlagBoolFlagBoolaaaboolOpt' boolOpt' :: (b -> Maybe Bool) ->  (Bool -> b) -> OptFlags -> OptFlags -> #MkOptDescr (a -> b) (b -> a -> a) aWWbMaybeBoolBoolbOptFlagsOptFlags MkOptDescrabbaaaboolOptboolOpt :: SFlags -> SFlags -> 3MkOptDescr (a -> Flag Bool) (Flag Bool -> a -> a) aXjXSFlagsSFlags MkOptDescraFlagBoolFlagBoolaaaboolOpt boolOpt :: (b -> Maybe Bool) ->  (Bool -> b) -> SFlags -> SFlags -> #MkOptDescr (a -> b) (b -> a -> a) aYeYbMaybeBoolBoolbSFlagsSFlags MkOptDescrabbaaaBoolOptBoolOpt ::  Description -> OptFlags -> OptFlags -> Bool -> a -> a -> a ->  Maybe Bool ->  OptDescr aZZ  DescriptionOptFlagsOptFlagsBoolaaaMaybeBoolOptDescra' BindirVar BindirVar :: PathTemplateVariable7[ [PathTemplateVariable#The $bindir path variable 'bindirbindir :: InstallDirs dir -> dir[[ InstallDirsdirdir BangPatterns BangPatterns ::  Extension\ \ Extension autogenModulesDirautogenModulesDir :: LocalBuildInfo -> String\~\LocalBuildInfoString5The directory in which we put auto-generated modules  autogenModuleNameautogenModuleName :: PackageDescription -> StringX]9]PackageDescriptionString@The name of the auto-generated module associated with a package ArrowsArrows ::  Extension]] Extension arProgram arProgram :: Program&^^ProgramArgstype Args = [String]_^ArgPlaceHoldertype ArgPlaceHolder = String^ Ambiguous Ambiguous :: [a] -> SearchResult a_^[]a SearchResultaallPackagesByNameallPackagesByName :: Package pkg => PackageIndex pkg -> [[pkg]]__Packagepkg PackageIndexpkg[][]pkgZGet all the packages from the index. They are grouped by package name, case-sensitively.  allPackages allPackages :: Package pkg => PackageIndex pkg -> [pkg]``Packagepkg PackageIndexpkg[]pkg%Get all the packages from the index.  alexProgram alexProgram :: Program8a.aProgramaddKnownProgramaddKnownProgram :: Program -> ProgramConfiguration -> ProgramConfigurationaaProgramProgramConfigurationProgramConfiguration0Add a known program that we may configure later absoluteInstallDirs absoluteInstallDirs :: PackageDescription -> LocalBuildInfo -> CopyDest -> InstallDirs FilePathcbPackageDescriptionLocalBuildInfoCopyDest InstallDirsFilePathSee absoluteInstallDirs 'absoluteInstallDirs absoluteInstallDirs :: PackageIdentifier ->  CompilerId -> CopyDest -> InstallDirTemplates -> InstallDirs FilePath]ddPackageIdentifier CompilerIdCopyDestInstallDirTemplates InstallDirsFilePathConvert from abstract install directories to actual absolute ones by substituting for all the variables in the abstract paths, to get real absolute path. YHCYHC :: CompilerFlavorAe0eCompilerFlavorX86_64X86_64 :: Arch}eveArchwritePackageDescriptionwritePackageDescription :: FilePath -> PackageDescription -> IO ()2ffFilePathPackageDescriptionIO()writeHookedBuildInfowriteHookedBuildInfo :: FilePath -> HookedBuildInfo -> IO ()ffFilePathHookedBuildInfoIO()withLib withLib :: PackageDescription -> a -> (Library -> IO a) -> IO agZgPackageDescriptionaLibraryIOaIOasIf the package description has a library section, call the given function with the library build info as argument.  withinRange withinRange :: Version ->  VersionRange -> BoolhnhVersion VersionRangeBool/Does this version fall within the given range? withExewithExe :: PackageDescription -> (Executable -> IO a) -> IO ()ki3iPackageDescription ExecutableIOaIO()SPerform the action on each buildable Executable in the package description. WindowsWindows :: OSiiOS warnUnrec warnUnrec :: UnrecFieldParser aYjAjUnrecFieldParseraA default unrecognized field parser which simply returns Nothing, i.e. ignores all unrecognized fields, so warnings will be generated.  warningwarning :: String -> ParseResult ()Qk3kString ParseResult() VersionRangedata  VersionRangek Verbositydata  Verbositykverboseverbose ::  Verbosity lk VerbosityVaxVax :: ArchAl:lArchVarVar :: c ->  Condition cllc Conditionc UTFWarning UTFWarning :: LineNo -> String -> PWarningmlLineNoStringPWarning UserHooks UserHooks :: Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO () -> IO (Maybe PackageDescription) -> [PPSuffixHandler] ->  [Program] -> Args ->  ConfigFlags ->  IO HookedBuildInfo ->  F(Either GenericPackageDescription PackageDescription, HookedBuildInfo) ->  ConfigFlags ->  IO LocalBuildInfo -> Args ->  ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO () -> Args ->  BuildFlags -> IO HookedBuildInfo -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  BuildFlags -> IO () -> Args ->  BuildFlags -> PackageDescription -> LocalBuildInfo -> IO () ->  Args -> ! MakefileFlags -> "IO HookedBuildInfo -> #PackageDescription -> $LocalBuildInfo -> % UserHooks -> & MakefileFlags -> 'IO () -> (Args -> ) MakefileFlags -> *PackageDescription -> +LocalBuildInfo -> ,IO () -> -Args -> . CleanFlags -> /IO HookedBuildInfo -> 0PackageDescriptionzzrArgsBoolPackageDescriptionLocalBuildInfoIO()IOMaybePackageDescription[]PPSuffixHandler[]ProgramArgs ConfigFlagsIOHookedBuildInfo(,)EitherGenericPackageDescriptionPackageDescriptionHookedBuildInfo ConfigFlagsIOLocalBuildInfoArgs ConfigFlagsPackageDescriptionLocalBuildInfoIO()Args BuildFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks BuildFlagsIO()Args BuildFlagsPackageDescriptionLocalBuildInfoIO()Args MakefileFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks MakefileFlagsIO()Args MakefileFlagsPackageDescriptionLocalBuildInfoIO()Args CleanFlagsIOHookedBuildInfoPackageDescriptionMaybeLocalBuildInfo UserHooks CleanFlagsIO()Args CleanFlagsPackageDescriptionMaybeLocalBuildInfoIO()Args CopyFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks CopyFlagsIO()Args CopyFlagsPackageDescriptionLocalBuildInfoIO()Args InstallFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks InstallFlagsIO()Args InstallFlagsPackageDescriptionLocalBuildInfoIO()Args SDistFlagsIOHookedBuildInfoPackageDescriptionMaybeLocalBuildInfo UserHooks SDistFlagsIO()Args SDistFlagsPackageDescriptionMaybeLocalBuildInfoIO()Args RegisterFlagsIOHookedBuildInfow2PackageDescriptionLocalBuildInfo UserHooks RegisterFlagsIO()Args RegisterFlagsPackageDescriptionLocalBuildInfoIO()Args RegisterFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks RegisterFlagsIO()Args RegisterFlagsPackageDescriptionLocalBuildInfoIO()Args HscolourFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks HscolourFlagsIO()Args HscolourFlagsPackageDescriptionLocalBuildInfoIO()Args HaddockFlagsIOHookedBuildInfoPackageDescriptionLocalBuildInfo UserHooks HaddockFlagsIO()Args HaddockFlagsPackageDescriptionLocalBuildInfoIO() UserHooks -> 1Maybe LocalBuildInfo -> 2 UserHooks -> 3 CleanFlags -> 4IO () -> 5Args -> 6 CleanFlags -> 7PackageDescription -> 8Maybe LocalBuildInfo -> 9IO () -> :Args -> ; CopyFlags -> <IO HookedBuildInfo -> =PackageDescription -> >LocalBuildInfo -> ? UserHooks -> @ CopyFlags -> AIO () -> BArgs -> C CopyFlags -> DPackageDescription -> ELocalBuildInfo -> FIO () -> GArgs -> H InstallFlags -> IIO HookedBuildInfo -> JPackageDescription -> KLocalBuildInfo -> L UserHooks -> M InstallFlags -> NIO () -> OArgs -> P InstallFlags -> QPackageDescription -> RLocalBuildInfo -> SIO () -> TArgs -> U SDistFlags -> VIO HookedBuildInfo -> WPackageDescription -> XMaybe LocalBuildInfo -> Y UserHooks -> Z SDistFlags -> [IO () -> \Args -> ] SDistFlags -> ^PackageDescription -> _Maybe LocalBuildInfo -> `IO () -> aArgs -> b RegisterFlags  -> cIO HookedBuildInfo -> dPackageDescription -> eLocalBuildInfo -> f UserHooks -> g RegisterFlags -> hIO () -> iArgs -> j RegisterFlags -> kPackageDescription -> lLocalBuildInfo -> mIO () -> nArgs -> o RegisterFlags -> pIO HookedBuildInfo -> qPackageDescription -> rLocalBuildInfo -> s UserHooks -> t RegisterFlags -> uIO () -> vArgs -> w RegisterFlags -> xPackageDescription -> yLocalBuildInfo -> zIO () -> {Args -> | HscolourFlags -> }IO HookedBuildInfo -> ~PackageDescription -> LocalBuildInfo ->  UserHooks ->  HscolourFlags -> IO () -> Args ->  HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO () -> Args ->  HaddockFlags -> IO HookedBuildInfo -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  HaddockFlags -> IO () -> Args ->  HaddockFlags -> PackageDescription -> LocalBuildInfo -> IO () ->  UserHooks UserHooksdata  UserHooks@Hooks allow authors to add specific functionality before and after a command is run, and also to specify additional preprocessors.
  • WARNING: The hooks interface is under rather constant flux as we try to understand users needs. Setup files that depend on this interface may break in future releases.
updatePackageDescriptionupdatePackageDescription :: HookedBuildInfo -> PackageDescription -> PackageDescription݅HookedBuildInfoPackageDescriptionPackageDescription unregHook unregHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  RegisterFlags -> IO ()&І UserHooksPackageDescriptionLocalBuildInfo UserHooks RegisterFlagsIO()COver-ride this hook to get different behavior during registration.  UnrecFieldParsertype UnrecFieldParser a# = (String, String) -> a -> Maybe aԇ(The type of a function which, given a name-value pair of an unrecognized field, and the current structure being built, decides whether to incorporate the unrecognized field (by returning Just x, where x is a possibly modified version of the structure being built), or not (by returning Nothing). UnliftedFFITypesUnliftedFFITypes ::  ExtensionVJ Extension UnknownLicenseUnknownLicense :: String -> LicenseĉStringLicenseTNot a recognised license. Allows us to deal with future extensions more gracefully.  UnknownLicenseUnknownLicense :: String -> LicenserStringLicenseTNot a recognised license. Allows us to deal with future extensions more gracefully. UnknownExtensionUnknownExtension :: String ->  ExtensionP:String ExtensionUnknownBuildTypeUnknownBuildType :: String ->  BuildTypeƋString BuildTypea package that uses an unknown build type cannot actually be built. Doing it this way rather than just giving a parse error means we get better error messages and allows you to inspect the rest of the package description. UnionVersionRangesUnionVersionRanges ::  VersionRange ->  VersionRange ->  VersionRangeV) VersionRange VersionRange VersionRange UnicodeSyntax UnicodeSyntax ::  Extension ExtensionUndecidableInstancesUndecidableInstances ::  Extension  Extension UnboxedTuples UnboxedTuples ::  Extension`T ExtensionTypeSynonymInstancesTypeSynonymInstances ::  ExtensionŽ Extension TypeOperators TypeOperators ::  Extension  Extension TypeFamilies TypeFamilies ::  Extensionh\ Extension ThisVersion ThisVersion :: Version ->  VersionRange܏Version VersionRange thisPackageVersionthisPackageVersion :: PackageIdentifier ->  DependencynLPackageIdentifier DependencyTextclass Text a testedWith testedWith :: PackageDescription ->  [(CompilerFlavor, VersionRange)]VPackageDescription[](,)CompilerFlavor VersionRangeTemplateHaskellTemplateHaskell ::  Extension Extension TabsError TabsError :: LineNo -> PErrorLineNoPError TabsError TabsError :: LineNo -> PErrorr_LineNoPError syntaxError syntaxError :: LineNo -> String ->  ParseResult aޒLineNoString ParseResultasynopsissynopsis :: PackageDescription -> String{\PackageDescriptionString#A one-line summary of this package  succeedReadE succeedReadE ::  (String -> a) -> ReadE aStringaReadEaStandaloneDerivingStandaloneDeriving ::  Extensionui Extension stability stability :: PackageDescription -> StringДPackageDescriptionString stability stability :: InstalledPackageInfo_ m -> StringvOInstalledPackageInfo_mStringSparcSparc :: ArchArchSolarisSolaris :: OSOSsimpleUserHookssimpleUserHooks ::  UserHooksB6 UserHooksLHooks that correspond to a plain instantiation of the "simple" build system  simpleParse simpleParse ::  Text a => String -> Maybe aTextaStringMaybea simpleField simpleField :: String ->  (a -> Doc) ->  ReadP a a -> (b -> a) ->  (a -> b -> b) ->  FieldDescr bStringaDocReadPaabaabb FieldDescrbSimpleSimple ::  BuildTypeMA BuildType/calls Distribution.Simple.defaultMain silentsilent ::  Verbosity˜ Verbosity showVersion showVersion :: Version -> String*VersionString showToken showToken :: String -> DocvStringDoc showTestedWithshowTestedWith :: (CompilerFlavor, VersionRange) -> Doc!(,)CompilerFlavor VersionRangeDoc showPWarning showPWarning :: FilePath -> PWarning -> StringFilePathPWarningString showPackageId showPackageId :: PackageIdentifier -> String+ PackageIdentifierStringshowPackageDescriptionshowPackageDescription :: PackageDescription -> StringPackageDescriptionString showInstalledPackageInfoFieldshowInstalledPackageInfoField :: String -> &Maybe (InstalledPackageInfo -> String)VStringMaybeInstalledPackageInfoString showInstalledPackageInfoshowInstalledPackageInfo :: InstalledPackageInfo -> String&InstalledPackageInfoStringshowHookedBuildInfoshowHookedBuildInfo :: HookedBuildInfo -> StringHookedBuildInfoString showFreeText showFreeText :: String -> DocStringDocPretty-print free-format text, ensuring that it is vertically aligned, and with blank lines replaced by dots for correct re-parsing.  showForGHC showForGHC ::  Verbosity -> String VerbosityString showFilePath showFilePath :: FilePath -> DoceSFilePathDocSHSH :: ArchArch setupMessage  setupMessage ::  Verbosity -> String -> PackageDescription -> IO ()T  VerbosityStringPackageDescriptionIO() Section Section :: LineNo -> String -> String -> [Field] -> FieldՠLineNoStringString[]FieldFieldA section with a name and possible parameter. The syntactic structure is:

sectionname> <arg {
  field*
}
 sDistHook sDistHook ::  UserHooks -> PackageDescription -> Maybe LocalBuildInfo ->  UserHooks ->  SDistFlags -> IO ()J UserHooksPackageDescriptionMaybeLocalBuildInfo UserHooks SDistFlagsIO()<Over-ride this hook to get different behavior during sdist. ScopedTypeVariablesScopedTypeVariables ::  ExtensionB6 ExtensionS390S390 :: ArchzsArchrunTestsrunTests ::  UserHooks -> Args -> Bool -> PackageDescription -> LocalBuildInfo -> IO ()i! UserHooksArgsBoolPackageDescriptionLocalBuildInfoIO()Used for ./setup test runReadErunReadE :: ReadE a -> String -> Either ErrorMsg a!ReadEaStringEitherErrorMsga runP runP :: LineNo -> String ->  ReadP a a -> String ->  ParseResult aLineNoStringReadPaaString ParseResulta runE runE :: LineNo -> String -> ReadE a -> String ->  ParseResult aeLineNoStringReadEaString ParseResultaRs6000Rs6000 :: ArchڦӦArchRestrictedTypeSynonymsRestrictedTypeSynonyms ::  Extension@4 ExtensionRelaxedPolyRecRelaxedPolyRec ::  Extension ExtensionregHookregHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  RegisterFlags -> IO ()I UserHooksPackageDescriptionLocalBuildInfo UserHooks RegisterFlagsIO()COver-ride this hook to get different behavior during registration.  RecursiveDo RecursiveDo ::  Extension2& ExtensionRecordWildCardsRecordWildCards ::  Extension~ Extension RecordPuns RecordPuns ::  Extensionة̩ ExtensionreadPackageDescriptionreadPackageDescription ::  Verbosity -> FilePath -> IO GenericPackageDescriptionn VerbosityFilePathIOGenericPackageDescriptionParse the given package file.  readP_to_E readP_to_E :: (String -> ErrorMsg) ->  ReadP a a -> ReadE al:StringErrorMsgReadPaaReadEareadHookedBuildInforeadHookedBuildInfo ::  Verbosity -> FilePath -> IO HookedBuildInfo! VerbosityFilePathIOHookedBuildInfo readFields readFields :: String -> ParseResult [Field]String ParseResult[]Field readEOrFail readEOrFail :: ReadE a -> String -> a!ReadEaStringaReadEReadE :: String -> Either ErrorMsg a -> ReadE aStringEitherErrorMsgaReadEaReadEnewtype ReadE a#Parser with simple error reporting readDescreadDesc ::  UserHooks -> IO (Maybe PackageDescription)q UserHooksIOMaybePackageDescriptionRead the description file  RankNTypes RankNTypes ::  Extension  Extension Rank2Types Rank2Types ::  ExtensionXL Extension PWarningPWarning :: String -> PWarningStringPWarning PWarningdata PWarning PWarningdata PWarning$ PublicDomain PublicDomain :: LicenserhLicense?Holder makes no claim to ownership, least restrictive license.  PublicDomain PublicDomain :: LicenseLicense?Holder makes no claim to ownership, least restrictive license. preUnreg preUnreg ::  UserHooks -> Args ->  RegisterFlags -> IO HookedBuildInfoñ UserHooksArgs RegisterFlagsIOHookedBuildInfo&Hook to run before unregister command preSDist preSDist ::  UserHooks -> Args ->  SDistFlags -> IO HookedBuildInfoܲ UserHooksArgs SDistFlagsIOHookedBuildInfoHHook to run before sdist command. Second arg indicates verbosity level. preReg preReg ::  UserHooks -> Args ->  RegisterFlags -> IO HookedBuildInfo߳ UserHooksArgs RegisterFlagsIOHookedBuildInfo$Hook to run before register command  preMakefile  preMakefile ::  UserHooks -> Args ->  MakefileFlags -> IO HookedBuildInfoȴ UserHooksArgs MakefileFlagsIOHookedBuildInfoKHook to run before makefile command. Second arg indicates verbosity level. preInst preInst ::  UserHooks -> Args ->  InstallFlags -> IO HookedBuildInfoε UserHooksArgs InstallFlagsIOHookedBuildInfo#Hook to run before install command  preHscolour  preHscolour ::  UserHooks -> Args ->  HscolourFlags -> IO HookedBuildInfo| UserHooksArgs HscolourFlagsIOHookedBuildInfoKHook to run before hscolour command. Second arg indicates verbosity level.  preHaddock  preHaddock ::  UserHooks -> Args ->  HaddockFlags -> IO HookedBuildInfo· UserHooksArgs HaddockFlagsIOHookedBuildInfoJHook to run before haddock command. Second arg indicates verbosity level. preCopy preCopy ::  UserHooks -> Args ->  CopyFlags -> IO HookedBuildInfo UserHooksArgs CopyFlagsIOHookedBuildInfo Hook to run before copy command preConf preConf ::  UserHooks -> Args ->  ConfigFlags -> IO HookedBuildInfob UserHooksArgs ConfigFlagsIOHookedBuildInfo%Hook to run before configure command preClean preClean ::  UserHooks -> Args ->  CleanFlags -> IO HookedBuildInfoxA UserHooksArgs CleanFlagsIOHookedBuildInfoHHook to run before clean command. Second arg indicates verbosity level. preBuild preBuild ::  UserHooks -> Args ->  BuildFlags -> IO HookedBuildInfoyB UserHooksArgs BuildFlagsIOHookedBuildInfoHHook to run before build command. Second arg indicates verbosity level.  ppFieldsppFields :: a -> [FieldDescr a] -> DocB a[] FieldDescraDoc ppFieldppField :: String -> Doc -> DocStringDocDocPPC64PPC64 :: ArchArchPPCPPC :: ArchArch postUnreg postUnreg ::  UserHooks -> Args ->  RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()!н UserHooksArgs RegisterFlagsPackageDescriptionLocalBuildInfoIO()%Hook to run after unregister command  postSDist postSDist ::  UserHooks -> Args ->  SDistFlags -> PackageDescription -> Maybe LocalBuildInfo -> IO ()R UserHooksArgs SDistFlagsPackageDescriptionMaybeLocalBuildInfoIO()GHook to run after sdist command. Second arg indicates verbosity level. postRegpostReg ::  UserHooks -> Args ->  RegisterFlags -> PackageDescription -> LocalBuildInfo -> IO ()G UserHooksArgs RegisterFlagsPackageDescriptionLocalBuildInfoIO()#Hook to run after register command  postMakefile postMakefile ::  UserHooks -> Args ->  MakefileFlags -> PackageDescription -> LocalBuildInfo -> IO ()s UserHooksArgs MakefileFlagsPackageDescriptionLocalBuildInfoIO()JHook to run after makefile command. Second arg indicates verbosity level. postInstpostInst ::  UserHooks -> Args ->  InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()  UserHooksArgs InstallFlagsPackageDescriptionLocalBuildInfoIO()cHook to run after install command. postInst should be run on the target, not on the build machine.  postHscolour postHscolour ::  UserHooks -> Args ->  HscolourFlags -> PackageDescription -> LocalBuildInfo -> IO ()y( UserHooksArgs HscolourFlagsPackageDescriptionLocalBuildInfoIO()JHook to run after hscolour command. Second arg indicates verbosity level.  postHaddock postHaddock ::  UserHooks -> Args ->  HaddockFlags -> PackageDescription -> LocalBuildInfo -> IO ()x UserHooksArgs HaddockFlagsPackageDescriptionLocalBuildInfoIO()IHook to run after haddock command. Second arg indicates verbosity level. postCopypostCopy ::  UserHooks -> Args ->  CopyFlags -> PackageDescription -> LocalBuildInfo -> IO ()  UserHooksArgs CopyFlagsPackageDescriptionLocalBuildInfoIO()Hook to run after copy command postConfpostConf ::  UserHooks -> Args ->  ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()& UserHooksArgs ConfigFlagsPackageDescriptionLocalBuildInfoIO()$Hook to run after configure command  postClean postClean ::  UserHooks -> Args ->  CleanFlags -> PackageDescription -> Maybe LocalBuildInfo -> IO ()V UserHooksArgs CleanFlagsPackageDescriptionMaybeLocalBuildInfoIO()GHook to run after clean command. Second arg indicates verbosity level.  postBuild postBuild ::  UserHooks -> Args ->  BuildFlags -> PackageDescription -> LocalBuildInfo -> IO ()L UserHooksArgs BuildFlagsPackageDescriptionLocalBuildInfoIO()GHook to run after build command. Second arg indicates verbosity level. PolymorphicComponentsPolymorphicComponents ::  ExtensionE9 Extension pkgVersion pkgVersion :: PackageIdentifier -> VersionPackageIdentifierVersion$the version of this package, eg 1.2 pkgUrlpkgUrl :: PackageDescription -> StringY:PackageDescriptionString pkgUrlpkgUrl :: InstalledPackageInfo_ m -> StringInstalledPackageInfo_mString pkgNamepkgName :: PackageIdentifier -> StringN0PackageIdentifierString"The name of this package, eg. foo pkgconfigDependspkgconfigDepends ::  BuildInfo ->  [Dependency] BuildInfo[] Dependency"pkg-config packages that are used  PErrordata PErrorH PErrordata PErrorxPatternSignaturesPatternSignatures ::  Extension Extension PatternGuards PatternGuards ::  Extension( Extension parseVersionRangeQparseVersionRangeQ :: ReadP r VersionRangeReadPr VersionRange parseVersion parseVersion :: ReadP r VersionReadPrVersion parseTokenQ parseTokenQ :: ReadP r String`KReadPrString parseTestedWithQparseTestedWithQ :: &ReadP r (CompilerFlavor, VersionRange)ReadPr(,)CompilerFlavor VersionRange parseSepList parseSepList ::  ReadP r b ->  ReadP r a ->  ReadP r [a]oReadPrbReadPraReadPr[]a ParseResultdata  ParseResult a ParseResultdata  ParseResult a ParseResultdata  ParseResult aY parseReadE parseReadE :: ReadE a ->  ReadP r aReadEaReadPra parseQuoted parseQuoted ::  ReadP r a ->  ReadP r aF%ReadPraReadPra parsePkgconfigDependencyparsePkgconfigDependency :: ReadP r DependencyReadPr Dependency parsePackageNameQparsePackageNameQ :: ReadP r String0ReadPrString parsePackageNameparsePackageName :: ReadP r StringReadPrStringparsePackageDescriptionparsePackageDescription :: String -> %ParseResult GenericPackageDescriptionW"String ParseResultGenericPackageDescriptionParses the given file into a GenericPackageDescription. In Cabal 1.2 the syntax for package descriptions was changed to a format with sections and possibly indented property descriptions.  parseOptVersionparseOptVersion :: ReadP r VersionmReadPrVersion parseOptCommaListparseOptCommaList ::  ReadP r a ->  ReadP r [a]ReadPraReadPr[]a ParseOkParseOk ::  [PWarning] -> a ->  ParseResult at[]PWarninga ParseResultaParseOkParseOk ::  [PWarning] -> a ->  ParseResult a'[]PWarninga ParseResulta ParseOkParseOk ::  [PWarning] -> a ->  ParseResult a[]PWarninga ParseResulta parseModuleNameQparseModuleNameQ :: ReadP r StringReadPrStringparse a module name  parseLicenseQ parseLicenseQ :: ReadP r License|ReadPrLicense parseInstalledPackageInfoparseInstalledPackageInfo :: String ->  ParseResult InstalledPackageInfoKString ParseResultInstalledPackageInfoparseHookedBuildInfoparseHookedBuildInfo :: String -> ParseResult HookedBuildInfoString ParseResultHookedBuildInfo parseFilePathQparseFilePathQ :: ReadP r FilePathXAReadPrFilePath ParseFailed ParseFailed :: PError ->  ParseResult aPError ParseResulta ParseFailed ParseFailed :: PError ->  ParseResult aF)PError ParseResulta ParseFailed ParseFailed :: PError ->  ParseResult aPError ParseResulta parseFail parseFail :: PError ->  ParseResult a0PError ParseResulta parseExtensionQparseExtensionQ :: ReadP r ExtensionReadPr ExtensionparseCompilerFlavorCompatparseCompilerFlavorCompat :: ReadP r CompilerFlavor& ReadPrCompilerFlavorLike classifyCompilerFlavor but compatible with the old ReadS parser. It is compatible in the sense that it accepts only the same strings, eg GHC but not ghc. However other strings get mapped to OtherCompiler. The point of this is that we do not allow extra valid values that would upset older Cabal versions that had a stricter parser however we cope with new values more gracefully so that we'll be able to introduce new value in future without breaking things so much.  parseCommaListparseCommaList ::  ReadP r a ->  ReadP r [a]|ReadPraReadPr[]a parseBuildToolparseBuildTool :: ReadP r DependencyReadPr Dependencyparseparse ::  Text a =>  ReadP r alQTextaReadPraParallelListCompParallelListComp ::  Extension Extension packageVersionpackageVersion :: Package pkg => pkg -> VersionM,PackagepkgpkgVersion packageName packageName :: Package pkg => pkg -> StringPackagepkgpkgString PackageIdentifierPackageIdentifier :: String -> Version -> PackageIdentifierpIStringVersionPackageIdentifier PackageIdentifierdata PackageIdentifier#The name and version of a package.  packageId packageId :: Package pkg => pkg -> PackageIdentifierj?PackagepkgpkgPackageIdentifier PackageFixedDepsclass Package pkg => PackageFixedDeps pkg_Subclass of packages that have specific versioned dependencies. So for example a not-yet-configured package has dependencies on version ranges, not specific versions. A configured or an already installed package depends on exact versions. Some operations or data structures (like dependency graphs) only make sense on this subclass of package types. packageDescriptionpackageDescription :: GenericPackageDescription -> PackageDescriptionGenericPackageDescriptionPackageDescriptionPackageDescription2PackageDescription :: PackageIdentifier -> License -> FilePath -> String -> String -> String -> String ->  [(CompilerFlavor, VersionRange)] -> String ->  String ->  String ->  String ->  String ->  [(String, String)] ->  [Dependency] ->  VersionRange -> Maybe BuildType ->  Maybe Library ->  [Executable] ->  [FilePath] -> FilePath ->  [FilePath] ->  [FilePath] -> PackageDescription0PackageIdentifierLicenseFilePathStringStringStringString[](,)CompilerFlavor VersionRangeStringStringStringStringString[](,)StringString[] Dependency VersionRangeMaybe BuildTypeMaybeLibrary[] Executable[]FilePathFilePath[]FilePath[]FilePathPackageDescriptionPackageDescriptiondata PackageDescriptionKThis data type is the internal representation of the file pkg.cabal. It contains two kinds of information about the package: information which is needed for all packages, such as the package name and version, and information which is needed for the simple build system only, such as the compiler options and library name. packagepackage :: PackageDescription -> PackageIdentifierPackageDescriptionPackageIdentifier packagepackage :: InstalledPackageInfo_ m -> PackageIdentifierGInstalledPackageInfo_mPackageIdentifier Packageclass Package pkg~Class of things that can be identified by a PackageIdentifier Types in this class are all notions of a package. This allows us to have different types for the different phases that packages go though, from simple name/id, package description, configured or installed packages. OverloadedStringsOverloadedStrings ::  Extension ExtensionOverlappingInstancesOverlappingInstances ::  ExtensionYM ExtensionOtherOSOtherOS :: String -> OSStringOS otherModules otherModules ::  BuildInfo -> [String]%  BuildInfo[]String non-exposed or non-main modules  OtherLicense OtherLicense :: LicenseLicenseSome other license.  OtherLicense OtherLicense :: LicenseLicenseSome other license.  OtherCompiler OtherCompiler :: String -> CompilerFlavorhStringCompilerFlavor OtherArch OtherArch :: String -> ArchStringArchOSXOSX :: OSOSOSdata OS;OSOS :: OS -> ConfVaryOSConfVarorLaterVersionorLaterVersion :: Version ->  VersionRangeVersion VersionRangeorEarlierVersionorEarlierVersion :: Version ->  VersionRangegVersion VersionRange optsField  optsField :: String -> CompilerFlavor -> #(b -> [(CompilerFlavor, [String])]) -> (([(CompilerFlavor, [String])] -> b -> b) ->  FieldDescr bSStringCompilerFlavorb[](,)CompilerFlavor[]String[](,)CompilerFlavor[]Stringbb FieldDescrboptionsoptions ::  BuildInfo -> [(CompilerFlavor, [String])]F BuildInfo[](,)CompilerFlavor[]StringOpenBSDOpenBSD :: OSOSnotThisVersionnotThisVersion :: Version ->  VersionRange3Version VersionRange notThisPackageVersionnotThisPackageVersion :: PackageIdentifier ->  DependencyPackageIdentifier Dependencynormalnormal ::  Verbosity Verbosity NoParseNoParse :: String -> LineNo -> PErrornStringLineNoPError NoParseNoParse :: String -> LineNo -> PErrorStringLineNoPErrorNoMonoPatBindsNoMonoPatBinds ::  ExtensionWK ExtensionNoMonomorphismRestrictionNoMonomorphismRestriction ::  Extension ExtensionNoImplicitPreludeNoImplicitPrelude ::  Extension ExtensionNHCNHC :: CompilerFlavoriXCompilerFlavorNetBSDNetBSD :: OSOSNamedFieldPunsNamedFieldPuns ::  Extension ExtensionMultiParamTypeClassesMultiParamTypeClasses ::  Extension[O Extension moreVerbose moreVerbose ::  Verbosity ->  Verbosity Verbosity Verbosity modulePath modulePath ::  Executable -> FilePath=$ ExecutableFilePathMkFlag MkFlag :: FlagName -> String -> Bool -> FlagFlagNameStringBoolFlagMipsMips :: ArchArch makefileHook makefileHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  MakefileFlags -> IO () UserHooksPackageDescriptionLocalBuildInfo UserHooks MakefileFlagsIO()?Over-ride this hook to get different behavior during makefile. MakeMake ::  BuildType BuildType-calls Distribution.Make.defaultMain  maintainer maintainer :: PackageDescription -> String>PackageDescriptionString maintainer maintainer :: InstalledPackageInfo_ m -> StringInstalledPackageInfo_mString MagicHash MagicHash ::  Extension ExtensionM68kM68k :: ArchKDArch locatedErrorMsglocatedErrorMsg :: PError -> (Maybe LineNo, String)PError(,)MaybeLineNoStringLitLit :: Bool ->  Condition c@'Bool Conditionc listField listField :: String ->  (a -> Doc) ->  ReadP [a] a ->  (b -> [a]) -> ([a] -> b -> b) ->  FieldDescr bMStringaDocReadP[]aab[]a[]abb FieldDescrbLinuxLinux :: OS~OS lineNolineNo :: Field -> LineNoFieldLineNo LineNotype LineNo = IntLineNotype LineNo = IntM liftField  liftField :: (b -> a) ->  (a -> b -> b) ->  FieldDescr a ->  FieldDescr b baabb FieldDescra FieldDescrb licenseFile licenseFile :: PackageDescription -> FilePathnPackageDescriptionFilePathlicenselicense :: PackageDescription -> LicensePackageDescriptionLicense licenselicense :: InstalledPackageInfo_ m -> LicensedInstalledPackageInfo_mLicense Licensedata LicenseThis datatype indicates the license under which your package is released. It is also wise to add your license to each source file using the license-file field. The AllRightsReserved constructor is not actually a license, but states that you are not giving anyone else a license to use or distribute your work. The comments below are general guidelines. Please read the licenses themselves and consult a lawyer if you are unsure of your rights to release the software.  Licensedata LicenseThis datatype indicates the license under which your package is released. It is also wise to add your license to each source file using the license-file field. The AllRightsReserved constructor is not actually a license, but states that you are not giving anyone else a license to use or distribute your work. The comments below are general guidelines. Please read the licenses themselves and consult a lawyer if you are unsure of your rights to release the software.  libraryDirs libraryDirs :: InstalledPackageInfo_ m ->  [FilePath]=  InstalledPackageInfo_m[]FilePathlibrarylibrary :: PackageDescription ->  Maybe Library  PackageDescriptionMaybeLibraryLibraryLibrary :: [String] ->  BuildInfo -> LibraryL ' []String BuildInfoLibraryLibrarydata Library~  libModules libModules :: PackageDescription -> [String]  PackageDescription[]String<Get all the module names from the libraries in this package LiberalTypeSynonymsLiberalTypeSynonyms ::  Extension   Extension libBuildInfo libBuildInfo :: Library ->  BuildInfo  Library BuildInfo LGPLLGPL :: LicenseL B License=Lesser GPL, Less restrictive than GPL, useful for libraries.  LGPLLGPL :: License  License=Lesser GPL, Less restrictive than GPL, useful for libraries.  lessVerbose lessVerbose ::  Verbosity ->  Verbosityv ]  Verbosity Verbosity ldOptions ldOptions ::  BuildInfo -> [String]   BuildInfo[]Stringoptions for linker  ldOptions ldOptions :: InstalledPackageInfo_ m -> [String][InstalledPackageInfo_m[]String LaterVersion LaterVersion :: Version ->  VersionRangeVersion VersionRangeknownBuildTypesknownBuildTypes ::  [BuildType]^L[] BuildTypeKindSignaturesKindSignatures ::  Extension ExtensionJHCJHC :: CompilerFlavorCompilerFlavor isAnyVersion isAnyVersion ::  VersionRange -> BoolnW VersionRangeBoolIRIXIRIX :: OSOSintToVerbosityintToVerbosity :: Int -> Maybe VerbosityIntMaybe VerbosityIntersectVersionRangesIntersectVersionRanges ::  VersionRange ->  VersionRange ->  VersionRange VersionRange VersionRange VersionRangeinstHookinstHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  InstallFlags -> IO () UserHooksPackageDescriptionLocalBuildInfo UserHooks InstallFlagsIO()>Over-ride this hook to get different behavior during install. installIncludesinstallIncludes ::  BuildInfo ->  [FilePath] BuildInfo[]FilePath%.h files to install with the package  InstalledPackageInfo_data InstalledPackageInfo_ m InstalledPackageInfotype InstalledPackageInfo = InstalledPackageInfo_ String InstalledPackageInfo<InstalledPackageInfo :: PackageIdentifier -> License -> String -> String -> String -> String -> String -> String -> String ->  String ->  Bool ->  [m] ->  [m] ->  [FilePath] ->  [FilePath] -> [String] -> [String] -> [String] ->  [FilePath] -> [String] -> [PackageIdentifier] -> [String] -> [String] -> [String] ->  [FilePath] -> [String] ->  [FilePath] ->  [FilePath] -> InstalledPackageInfo_ mPackageIdentifierLicenseStringStringStringStringStringStringStringStringBool[]m[]m[]FilePath[]FilePath[]String[]String[]String[]FilePath[]String[]PackageIdentifier[]String[]String[]String[]FilePath[]String[]FilePath[]FilePathInstalledPackageInfo_mIncoherentInstancesIncoherentInstances ::  Extension Extensionincludesincludes ::  BuildInfo ->  [FilePath]cE BuildInfo[]FilePath(The .h files to be found in includeDirs  includesincludes :: InstalledPackageInfo_ m -> [String]InstalledPackageInfo_m[]String includeDirs includeDirs ::  BuildInfo ->  [FilePath]r BuildInfo[]FilePathdirectories to find .h files  includeDirs includeDirs :: InstalledPackageInfo_ m ->  [FilePath]DInstalledPackageInfo_m[]FilePath importDirs importDirs :: InstalledPackageInfo_ m ->  [FilePath]InstalledPackageInfo_m[]FilePathImplicitParamsImplicitParams ::  Extension/# ExtensionImplImpl :: CompilerFlavor ->  VersionRange -> ConfVarCompilerFlavor VersionRangeConfVar ignoreUnrec ignoreUnrec :: UnrecFieldParser a$ UnrecFieldParseraA default unrecognized field parser which silently (i.e. no warnings will be generated) ignores unrecognized fields, by returning the structure being built unmodified.  IfBlock IfBlock :: LineNo -> String -> [Field] -> [Field] -> FieldNLineNoString[]Field[]FieldFieldA conditional block with an optional else branch:

if condition {
  field*
} else {
  field*
}
IA64IA64 :: Arch<5ArchI386I386 :: ArchtmArch hugsOptions hugsOptions :: InstalledPackageInfo_ m -> [String] InstalledPackageInfo_m[]StringHugsHugs :: CompilerFlavorS B CompilerFlavor hsSourceDirs hsSourceDirs ::  BuildInfo ->  [FilePath]   BuildInfo[]FilePath/where to look for the haskell module hierarchy  hsLibraries hsLibraries :: InstalledPackageInfo_ m -> [String]!b!InstalledPackageInfo_m[]String hscolourHook hscolourHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  HscolourFlags -> IO ()"L" UserHooksPackageDescriptionLocalBuildInfo UserHooks HscolourFlagsIO()?Over-ride this hook to get different behavior during hscolour. HPUXHPUX :: OS##OSHppaHppa :: ArchM#F#ArchhookedProgramshookedPrograms ::  UserHooks ->  [Program]## UserHooks[]ProgramfThese programs are detected at configure time. Arguments for them are added to the configure command. hookedPreProcessorshookedPreProcessors ::  UserHooks -> [PPSuffixHandler]$$ UserHooks[]PPSuffixHandlerHCustom preprocessors in addition to and overriding knownSuffixHandlers. HookedBuildInfotype HookedBuildInfo+ = (Maybe BuildInfo, [(String, BuildInfo)])|%homepagehomepage :: PackageDescription -> String%%PackageDescriptionString homepagehomepage :: InstalledPackageInfo_ m -> Stringy&R&InstalledPackageInfo_mString hiddenModules hiddenModules :: InstalledPackageInfo_ m -> [m]'&InstalledPackageInfo_m[]m HereDocuments HereDocuments ::  ExtensionZ'N' ExtensionHeliumHelium :: CompilerFlavor''CompilerFlavor hcOptions hcOptions :: CompilerFlavor ->  BuildInfo -> [String]D((CompilerFlavor BuildInfo[]String2Select options for a particular Haskell compiler. HBCHBC :: CompilerFlavor((CompilerFlavorhasLibshasLibs :: PackageDescription -> Bool2))PackageDescriptionBool&does this package have any libraries? hasExeshasExes :: PackageDescription -> Bool))PackageDescriptionBool(does this package have any executables?  haddockInterfaceshaddockInterfaces :: InstalledPackageInfo_ m ->  [FilePath]*f*InstalledPackageInfo_m[]FilePath haddockHTMLs haddockHTMLs :: InstalledPackageInfo_ m ->  [FilePath].+*InstalledPackageInfo_m[]FilePath haddockHook haddockHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  HaddockFlags -> IO ()=,+ UserHooksPackageDescriptionLocalBuildInfo UserHooks HaddockFlagsIO()>Over-ride this hook to get different behavior during haddock.  GPLGPL :: License,,License<GNU Public License. Source code must accompany alterations.  GPLGPL :: License/-%-License<GNU Public License. Source code must accompany alterations. ghcSharedOptionsghcSharedOptions ::  BuildInfo -> [String]-- BuildInfo[]StringghcProfOptionsghcProfOptions ::  BuildInfo -> [String]c.G. BuildInfo[]StringGHCGHC :: CompilerFlavor..CompilerFlavorgenPackageFlagsgenPackageFlags :: GenericPackageDescription -> [Flag]E//GenericPackageDescription[]FlagGenericsGenerics ::  Extension// ExtensionGenericPackageDescription GenericPackageDescription :: PackageDescription -> [Flag] -> -Maybe (CondTree ConfVar [Dependency] Library) -> 4[(String, CondTree ConfVar [Dependency] Executable)] -> GenericPackageDescriptiong10PackageDescription[]FlagMaybeCondTreeConfVar[] DependencyLibrary[](,)StringCondTreeConfVar[] Dependency ExecutableGenericPackageDescriptionGenericPackageDescriptiondata GenericPackageDescription1GeneralizedNewtypeDerivingGeneralizedNewtypeDeriving ::  Extension+22 ExtensionGADTsGADTs ::  Extensiono2c2 ExtensionFunctionalDependenciesFunctionalDependencies ::  Extension22 Extension FromString FromString :: String ->  Maybe LineNo -> PErrorb3>3StringMaybeLineNoPError FromString FromString :: String ->  Maybe LineNo -> PError33StringMaybeLineNoPErrorfreeVarsfreeVars :: CondTree ConfVar c a ->  [FlagName]|4N4CondTreeConfVarca[]FlagNameFreeBSDFreeBSD :: OS44OS frameworks frameworks ::  BuildInfo -> [String](5 5 BuildInfo[]String support frameworks for Mac OS X  frameworks frameworks :: InstalledPackageInfo_ m -> [String]55InstalledPackageInfo_m[]String frameworkDirs frameworkDirs :: InstalledPackageInfo_ m ->  [FilePath]t6E6InstalledPackageInfo_m[]FilePathForeignFunctionInterfaceForeignFunctionInterface ::  Extension66 Extension fNamefName :: Field -> String67$7FieldStringFlexibleInstancesFlexibleInstances ::  Extension77 ExtensionFlexibleContextsFlexibleContexts ::  Extension77 ExtensionflagToVerbosityflagToVerbosity :: ReadE VerbosityS8>8ReadE VerbosityflagNameflagName :: Flag -> FlagName88FlagFlagNameFlagNameFlagName :: String -> FlagName99StringFlagNameFlagNamenewtype FlagNameN9CA FlagName is the name of a user-defined configuration flag flagDescriptionflagDescription :: Flag -> String99FlagString flagDefault flagDefault :: Flag -> BoolY:J:FlagBoolFlagAssignmenttype FlagAssignment = [(FlagName, Bool)]:A FlagAssignment is a total or partial mapping of FlagNames to Bool flag values. It represents the flags chosen by the user or discovered during configuration. For example --flags=foo --flags=-bar becomes [(foo, True), (bar, False)] FlagFlag :: FlagName -> ConfVar,<<FlagNameConfVarFlagdata FlagX<A flag can represent a feature to be included, or a way of linking a target against its dependencies, or in fact whatever you can think of.  fieldSet fieldSet ::  FieldDescr a -> LineNo -> String -> a ->  ParseResult a=o= FieldDescraLineNoStringa ParseResultafieldSet n str x Parses the field value from the given input string str and stores the result in x if the parse was successful. Otherwise, reports an error on line number n. fieldSet fieldSet ::  FieldDescr a -> LineNo -> String -> a ->  ParseResult a>?? FieldDescraLineNoStringa ParseResultafieldSet n str x Parses the field value from the given input string str and stores the result in x if the parse was successful. Otherwise, reports an error on line number n.  fieldName fieldName ::  FieldDescr a -> String@e@ FieldDescraString fieldName fieldName ::  FieldDescr a -> String@@ FieldDescraString fieldGetfieldGet ::  FieldDescr a -> a -> DockAOA FieldDescraaDocfieldGetfieldGet ::  FieldDescr a -> a -> DocAA FieldDescraaDoc FieldDescr FieldDescr :: String -> a -> Doc -> LineNo -> String -> a ->  ParseResult a ->  FieldDescr aBBStringaDocLineNoStringa ParseResulta FieldDescra FieldDescrdata  FieldDescr a$CdField descriptor. The parameter a parameterizes over where the field's value is stored in.  FieldDescr FieldDescr :: String -> a -> Doc -> LineNo -> String -> a ->  ParseResult a ->  FieldDescr aDEDStringaDocLineNoStringa ParseResulta FieldDescra FieldDescrdata  FieldDescr aDdField descriptor. The parameter a parameterizes over where the field's value is stored in.  field field :: String ->  (a -> Doc) ->  ReadP a a ->  FieldDescr aEEStringaDocReadPaa FieldDescra Fielddata FieldF failReadE failReadE :: ErrorMsg -> ReadE arFYFErrorMsgReadEa F F :: LineNo -> String -> String -> FieldFFLineNoStringStringField8A regular property>: <value field  extraTmpFiles extraTmpFiles :: PackageDescription ->  [FilePath]GGPackageDescription[]FilePath extraSrcFiles extraSrcFiles :: PackageDescription ->  [FilePath]JH#HPackageDescription[]FilePath extraLibs extraLibs ::  BuildInfo -> [String]HH BuildInfo[]StringLwhat libraries to link with when compiling a program that uses your package  extraLibrariesextraLibraries :: InstalledPackageInfo_ m -> [String]IrIInstalledPackageInfo_m[]String extraLibDirs extraLibDirs ::  BuildInfo -> [String]JI BuildInfo[]String extraGHCiLibrariesextraGHCiLibraries :: InstalledPackageInfo_ m -> [String]JJInstalledPackageInfo_m[]String extensions extensions ::  BuildInfo ->  [Extension].KK BuildInfo[] Extension Extensiondata  ExtensiondKThis represents language extensions beyond Haskell 98 that are supported by some implementations, usually in some special mode. ExtensibleRecordsExtensibleRecords ::  Extension@L4L ExtensionExtendedDefaultRulesExtendedDefaultRules ::  ExtensionLL ExtensionexposedModulesexposedModules :: Library -> [String]MLLibrary[]String exposedModulesexposedModules :: InstalledPackageInfo_ m -> [m]MMInstalledPackageInfo_m[]m exposedexposed :: InstalledPackageInfo_ m -> Bool&NNInstalledPackageInfo_mBoolExistentialQuantificationExistentialQuantification ::  ExtensionNN ExtensionexeNameexeName ::  Executable -> StringNN ExecutableString exeModules exeModules :: PackageDescription -> [String]|OWOPackageDescription[]String7Get all the module names from the exes in this package  executables executables :: PackageDescription ->  [Executable]APPPackageDescription[] Executable Executable  Executable :: String -> FilePath ->  BuildInfo ->  ExecutablePPStringFilePath BuildInfo Executable Executabledata  Executable#QemptyUserHooksemptyUserHooks ::  UserHooksyQmQ UserHooks)Empty UserHooks which do nothing. emptyPackageDescriptionemptyPackageDescription :: PackageDescriptionRRPackageDescription emptyLibrary emptyLibrary :: LibraryjR`RLibrary emptyInstalledPackageInfoemptyInstalledPackageInfo :: InstalledPackageInfo_ mRRInstalledPackageInfo_memptyHookedBuildInfoemptyHookedBuildInfo :: HookedBuildInfocSQSHookedBuildInfoemptyExecutableemptyExecutable ::  ExecutableSS ExecutableEmptyDataDeclsEmptyDataDecls ::  ExtensionTT ExtensionemptyBuildInfoemptyBuildInfo ::  BuildInfoiT]T BuildInfoEarlierVersionEarlierVersion :: Version ->  VersionRangeTTVersion VersionRangedisplaydisplay ::  Text a => a -> StringLU3UTextaaStringdispdisp ::  Text a => a -> DocUUTextaaDocDisambiguateRecordFieldsDisambiguateRecordFields ::  ExtensionVV Extension description description :: PackageDescription -> StringVrVPackageDescriptionString+A more verbose description of this package  description description :: InstalledPackageInfo_ m -> StringGW WInstalledPackageInfo_mStringdescCabalVersiondescCabalVersion :: PackageDescription ->  VersionRangeWWPackageDescription VersionRangeHIf this package depends on a specific version of Cabal, give that here. DeriveDataTypeableDeriveDataTypeable ::  ExtensionXuX Extension dependsdepends :: PackageFixedDeps pkg => pkg -> [PackageIdentifier](YXPackageFixedDepspkgpkg[]PackageIdentifier dependsdepends :: InstalledPackageInfo_ m -> [PackageIdentifier]YYInstalledPackageInfo_m[]PackageIdentifier Dependency Dependency :: String ->  VersionRange ->  Dependency[Z6ZString VersionRange Dependency Dependencydata  DependencyZdefaultUserHooksdefaultUserHooks ::  UserHooksZZ UserHooksBasic autoconf UserHooks: Thus configure can use local system information to generate package.buildinfo and possibly other files. defaultMainWithHooksArgsdefaultMainWithHooksArgs ::  UserHooks -> [String] -> IO ()n]H] UserHooks[]StringIO()YA customizable version of defaultMain that also takes the command line arguments. defaultMainWithHooksdefaultMainWithHooks ::  UserHooks -> IO ()F^.^ UserHooksIO().A customizable version of defaultMain. defaultMainNoReaddefaultMainNoRead :: PackageDescription -> IO ()^^PackageDescriptionIO()gLike defaultMain, but accepts the package description as input rather than using IO to read it.  defaultMainNoReaddefaultMainNoRead :: PackageDescription -> IO ()__PackageDescriptionIO()defaultMainArgsdefaultMainArgs :: [String] -> IO ()h`M`[]StringIO()zA version of defaultMain that is passed the command line arguments, rather than getting them from the environment.  defaultMainArgsdefaultMainArgs :: [String] -> IO ()Ya>a[]StringIO() defaultMain defaultMain :: IO ()aaIO()A simple implementation of main for a Cabal setup script. It reads the package description file using IO, and performs the action specified on the command line.  defaultMain defaultMain :: IO ()bbIO()defaultHookedPackageDescdefaultHookedPackageDesc :: IO (Maybe FilePath)ccIOMaybeFilePathPOptional auxiliary package information file (pkgname.buildinfo) defaultCompilerFlavordefaultCompilerFlavor :: Maybe CompilerFlavorccMaybeCompilerFlavorThe default compiler flavour to pick when compiling stuff. This defaults to the compiler used to build the Cabal lib. However if it's not a recognised compiler then it's Nothing and the user will have to specify which compiler they want.  deafening deafening ::  Verbosity*ee Verbosity dataFiles dataFiles :: PackageDescription ->  [FilePath]eePackageDescription[]FilePathdataDirdataDir :: PackageDescription -> FilePath*f fPackageDescriptionFilePathcustomFieldsPDcustomFieldsPD :: PackageDescription -> [(String, String)]ffPackageDescription[](,)StringString?Custom fields starting with x-, stored in a simple assoc-list. customFieldsBIcustomFieldsBI ::  BuildInfo -> [(String, String)]gvg BuildInfo[](,)StringString?Custom fields starting with x-, stored in a simple assoc-list. CustomCustom ::  BuildType&hh BuildTypeEuses user-supplied Setup.hs or Setup.lhs (default) cSourcescSources ::  BuildInfo ->  [FilePath]hh BuildInfo[]FilePath cppOptions cppOptions ::  BuildInfo -> [String]Oi3i BuildInfo[]String(options for pre-processing Haskell code CPPCPP ::  Extensionii ExtensionCOrCOr ::  Condition c ->  Condition c ->  Condition cNjj Conditionc Conditionc Conditionc copyright copyright :: PackageDescription -> StringjjPackageDescriptionString copyright copyright :: InstalledPackageInfo_ m -> StringOk(kInstalledPackageInfo_mStringcopyHookcopyHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  CopyFlags -> IO ()Rll UserHooksPackageDescriptionLocalBuildInfo UserHooks CopyFlagsIO();Over-ride this hook to get different behavior during copy. ConstrainedClassMethodsConstrainedClassMethods ::  Extensionll ExtensionConfVardata ConfVar'm6A ConfVar represents the variable type used.  Configure Configure ::  BuildTypemm BuildTypecalls Distribution.Simple.defaultMainWithHooks defaultUserHooks, which invokes configure to generate additional build information used by later phases. confHook confHook ::  UserHooks -> F(Either GenericPackageDescription PackageDescription, HookedBuildInfo) ->  ConfigFlags -> IO LocalBuildInfooo UserHooks(,)EitherGenericPackageDescriptionPackageDescriptionHookedBuildInfo ConfigFlagsIOLocalBuildInfo@Over-ride this hook to get different behavior during configure.  condTreeData condTreeData :: CondTree v c a -> aLp1pCondTreevcaacondTreeConstraintscondTreeConstraints :: CondTree v c a -> cppCondTreevcaccondTreeComponentscondTreeComponents :: CondTree v c a -> 7[(Condition v, CondTree v c a, Maybe (CondTree v c a))]qgqCondTreevca[](,,) ConditionvCondTreevcaMaybeCondTreevcaCondTreedata CondTree v c a rCondNode CondNode :: a -> c -> 7[(Condition v, CondTree v c a, Maybe (CondTree v c a))] -> CondTree v c asrac[](,,) ConditionvCondTreevcaMaybeCondTreevcaCondTreevca condLibrary condLibrary :: GenericPackageDescription -> -Maybe (CondTree ConfVar [Dependency] Library)ssGenericPackageDescriptionMaybeCondTreeConfVar[] DependencyLibrary Conditiondata  Condition c5t@A boolean expression parameterized over the variable type used. condExecutablescondExecutables :: GenericPackageDescription -> 4[(String, CondTree ConfVar [Dependency] Executable)]wuuGenericPackageDescription[](,)StringCondTreeConfVar[] Dependency Executable CompilerId CompilerId :: CompilerFlavor -> Version ->  CompilerIdvuCompilerFlavorVersion CompilerId CompilerIddata  CompilerIdGvCompilerFlavordata CompilerFlavorv commaListFieldcommaListField :: String ->  (a -> Doc) ->  ReadP [a] a ->  (b -> [a]) -> ([a] -> b -> b) ->  FieldDescr bwDwStringaDocReadP[]aab[]a[]abb FieldDescrbCNotCNot ::  Condition c ->  Condition cxw Conditionc Conditionc cleanHook cleanHook ::  UserHooks -> PackageDescription -> Maybe LocalBuildInfo ->  UserHooks ->  CleanFlags -> IO ()&yx UserHooksPackageDescriptionMaybeLocalBuildInfo UserHooks CleanFlagsIO()<Over-ride this hook to get different behavior during clean.  ccOptions ccOptions ::  BuildInfo -> [String]yy BuildInfo[]Stringoptions for C compiler  ccOptions ccOptions :: InstalledPackageInfo_ m -> [String]xzKzInstalledPackageInfo_m[]Stringcategorycategory :: PackageDescription -> StringzzPackageDescriptionString categorycategory :: InstalledPackageInfo_ m -> Stringu{N{InstalledPackageInfo_mString catchParseErrorcatchParseError ::  ParseResult a -> (PError -> ParseResult a) ->  ParseResult aF|| ParseResultaPError ParseResulta ParseResultaCAndCAnd ::  Condition c ->  Condition c ->  Condition c|| Conditionc Conditionc Conditionc cabalVersion cabalVersion :: Version-}#}Version buildType buildType :: PackageDescription -> Maybe BuildType}}PackageDescriptionMaybe BuildType BuildTypedata  BuildType}/The type of build system used by this package.  buildTools buildTools ::  BuildInfo ->  [Dependency]~{~ BuildInfo[] Dependencytools needed to build this bit buildOSbuildOS :: OS~~OS buildInfo buildInfo ::  Executable ->  BuildInfodJ Executable BuildInfo BuildInfo, BuildInfo :: Bool ->  [Dependency] -> [String] -> [String] -> [String] ->  [Dependency] -> [String] ->  [FilePath] ->  [FilePath] ->  [String] ->  [Extension] ->  [String] ->  [String] ->  [FilePath] ->  [FilePath] ->  [FilePath] -> [(CompilerFlavor, [String])] -> [String] -> [String] -> [(String, String)] ->  BuildInfo‚cBool[] Dependency[]String[]String[]String[] Dependency[]String[]FilePath[]FilePath[]String[] Extension[]String[]String[]FilePath[]FilePath[]FilePath[](,)CompilerFlavor[]String[]String[]String[](,)StringString BuildInfo BuildInfodata  BuildInfo buildHook buildHook ::  UserHooks -> PackageDescription -> LocalBuildInfo ->  UserHooks ->  BuildFlags -> IO () UserHooksPackageDescriptionLocalBuildInfo UserHooks BuildFlagsIO()=Over-ride this hook to gbet different behavior during build.  buildDepends buildDepends :: PackageDescription ->  [Dependency]̄PackageDescription[] DependencybuildCompilerFlavorbuildCompilerFlavor :: CompilerFlavor6%CompilerFlavor buildArch buildArch :: ArchxqArch buildable buildable ::  BuildInfo -> Bool܅ȅ BuildInfoBoolcomponent is buildable here  BSD4BSD4 :: License6,License64-clause BSD license, older, with advertising clause.  BSD4BSD4 :: LicenseLicense64-clause BSD license, older, with advertising clause.  BSD3BSD3 :: LicenseLicenseG3-clause BSD license, newer, no advertising clause. Very free license.  BSD3BSD3 :: LicenseLicenseG3-clause BSD license, newer, no advertising clause. Very free license.  boolField  boolField :: String ->  (b -> Bool) -> (Bool -> b -> b) ->  FieldDescr brStringbBoolBoolbb FieldDescrbbetweenVersionsInclusivebetweenVersionsInclusive :: Version -> Version ->  VersionRangeQ.VersionVersion VersionRange BangPatterns BangPatterns ::  Extension ExtensionautoconfUserHooksautoconfUserHooks ::  UserHooks UserHooksauthorauthor :: PackageDescription -> StringsTPackageDescriptionString authorauthor :: InstalledPackageInfo_ m -> String͊InstalledPackageInfo_mStringArrowsArrows ::  Extension:. ExtensionArmArm :: ArchpiArchArgstype Args = [String]Archdata ArchՋArchArch :: Arch -> ConfVar+ArchConfVar AnyVersion AnyVersion ::  VersionRangep VersionRange AmbigousParse AmbigousParse :: String -> LineNo -> PErrorStringLineNoPError AmbigousParse AmbigousParse :: String -> LineNo -> PErrorlStringLineNoPErrorAlphaAlpha :: ArchArch AllRightsReservedAllRightsReserved :: LicenseLicenseDNo rights are granted to others. Undistributable. Most restrictive.  AllRightsReservedAllRightsReserved :: LicenseLicenseDNo rights are granted to others. Undistributable. Most restrictive.  allBuildInfo allBuildInfo :: PackageDescription ->  [BuildInfo]_PackageDescription[] BuildInfoThe BuildInfo for the library (if there is one and it's buildable) and all the buildable executables. Useful for gathering dependencies. AIXAIX :: OSIDOSVersionmodule Distribution.Version=Versions for packages, based on the Version datatype.  Verbositymodule Distribution. VerbosityVerbosity for Cabal functions Utilsmodule Distribution.Simple.Utilsb|Explanation: Misc. Utilities, especially file-related utilities. Stuff used by multiple modules that doesn't fit elsewhere.  UserHooksmodule Distribution.Simple. UserHooks&Explanation: Simple build system; basically the interface for Distribution.Simple.* modules. When given the parsed command-line args and package information, is able to perform basic commands like configure, build, install, register, etc. This module isn't called "Simple" because it's simple. Far from it. It's called "Simple" because it does complicated things to simple software. (Unlitmodule Distribution.Simple.PreProcess.UnlitRemove the "literal" markups from a Haskell source file, including ">", "\begin{code}", "\end{code}", and "#" Textmodule Distribution.TextSystemmodule Distribution.SystemSrcDistmodule Distribution.Simple.SrcDist<Implements the "./setup sdist" command, which creates a source distribution for this package. That is, packs up the source code into a tarball. Simplemodule Distribution.SimpleExplanation: Simple build system; basically the interface for Distribution.Simple.* modules. When given the parsed command-line args and package information, is able to perform basic commands like configure, build, install, register, etc. This module isn't called "Simple" because it's simple. Far from it. It's called "Simple" because it does complicated things to simple software. ) SetupWrappermodule Distribution.Simple. SetupWrapperޗ4The user interface to building and installing Cabal packages. If the Built-Type field is specified as something other than Custom, and the current version of Cabal is acceptable, this performs setup actions directly. Otherwise it builds the setup script and runs it with the given arguments. Setupmodule Distribution.Simple.SetupRyExplanation: Data types and parser for the standard command-line setup. Will also return commands it doesn't know about. Setupmodule Distribution.SetupRegistermodule Distribution.Simple.RegisterJExplanation: Perform the "./setup register" action. Uses a drop-file for HC-PKG. See also Distribution.InstalledPackageInfo. ReadPmodule Distribution.Compat.ReadP7This is a library of parser combinators, originally written by Koen Claessen. It parses all alternatives in parallel, so it never keeps hold of the beginning of the input string, a common source of space leaks with other parsers. The '(+++)' choice combinator is genuinely commutative; it makes no difference which branch is "shorter". See also Koen's paper Parallel Parsing Processes (http://www.cs.chalmers.se/~koen/publications.html). This version of ReadP has been locally hacked to make it H98, by Martin Sjgren mailto:msjogren@gmail.com ReadEmodule Distribution.ReadESimple parsing with failure Programmodule Distribution.Simple.ProgramoExplanation: A program is basically a name, a location, and some arguments. One nice thing about using it is that any program that is registered with Cabal will get some "configure" and ".cabal" helpers like --with-foo-args --foo-path= and extra-foo-args. There's also good default behavior for trying to find "foo" in PATH, being able to override its location, etc. There's also a hook for adding programs in a Setup.lhs script. See hookedPrograms in Distribution.Simple.UserHooks. This gives a hook user the ability to get the above flags and such so that they don't have to write all the PATH logic inside Setup.lhs.  PreProcessmodule Distribution.Simple. PreProcessPreProcessors are programs or functions which input a filename and output a Haskell file. The general form of a preprocessor is input Foo.pp and output Foo.hs (where pp is a unique extension that tells us which preprocessor to use eg. gc, ly, cpphs, x, y, etc.). Once a PreProcessor has been added to Cabal, either here or with Distribution.Simple.UserHooks, if Cabal finds a Foo.pp, it'll run the given preprocessor which should output a Foo.hs.  ParseUtilsmodule Distribution. ParseUtilsCUtilities for parsing PackageDescription and InstalledPackageInfo.  PackageIndexmodule Distribution.Simple. PackageIndex:An index of packages. PackageDescriptionmodule Distribution.PackageDescription!Package description and parsing.  Packagemodule Distribution.Package6Packages are fundamentally just a name and a version. %NHCmodule Distribution.Simple.NHCs Makemodule Distribution.MakeUses the parsed command-line from Distribution.Setup in order to build Haskell tools using a backend build system based on make. Obviously we assume that there is a configure script, and that after the ConfigCmd has been run, there is a Makefile. Further assumptions:
  • ConfigCmd We assume the configure script accepts --with-hc, --with-hc-pkg, --prefix, --bindir, --libdir, --libexecdir, --datadir.
  • BuildCmd We assume that the default Makefile target will build everything.
  • InstallCmd We assume there is an install target. Note that we assume that this does *not* register the package!
  • CopyCmd We assume there is a copy target, and a variable $(destdir). The copy target should probably just invoke make install recursively (e.g. $(MAKE) install prefix=$(destdir)/$(prefix) bindir=$(destdir)/$(bindir). The reason we can't invoke make install directly here is that we don't know the value of $(prefix).
  • SDistCmd We assume there is a dist target.
  • RegisterCmd We assume there is a register target and a variable $(user).
  • UnregisterCmd We assume there is an unregister target.
  • HaddockCmd We assume there is a docs or doc target.
LocalBuildInfomodule Distribution.Simple.LocalBuildInfo Definition of the LocalBuildInfo data type. This is basically the information that is gathered by the end of the configuration step which could include package information from ghc-pkg, flags the user passed to configure, and the location of tools in the PATH.  Licensemodule Distribution.License{The License datatype. For more information about these and other open-source licenses, you may visit http://www.opensource.org/. I am not a lawyer, but as a general guideline, most Haskell software seems to be released under a BSD3 license, which is very open and free. If you don't want to restrict the use of your software or its source code, use BSD3 or PublicDomain. $JHCmodule Distribution.Simple.JHC6Build and install functionality for the JHC compiler.  InstalledPackageInfomodule Distribution.InstalledPackageInfo7This is the information about an installed package that is communicated to the hc-pkg program in order to register a package. ghc-pkg now consumes this package format (as of verison 6.4). This is specific to GHC at the moment. ' InstallDirsmodule Distribution.Simple. InstallDirsDefinition of the LocalBuildInfo data type. This is basically the information that is gathered by the end of the configuration step which could include package information from ghc-pkg, flags the user passed to configure, and the location of tools in the PATH. !Installmodule Distribution.Simple.InstallȰExplanation: Perform the "./setup install" and "./setup copy" actions. Move files into place based on the prefix argument. &Hugsmodule Distribution.Simple.Hugs*Build and install functionality for Hugs. "Haddockmodule Distribution.Simple.HaddockInvokes haddock to generate api documentation for libraries and optinally executables in this package. Also has support for generating syntax-highlighted source with HsColour and linking the haddock docs to it. #GHCmodule Distribution.Simple.GHCBuild and Install implementations for GHC. See Distribution.Simple.GHC.PackageConfig.GHCPackageConfig for registration-related stuff.  Extensionmodule Language.Haskell. Extension۳Haskell language extensions  Extensionmodule Distribution. Extension8Haskell language extensions  Configuremodule Distribution.Simple. ConfigurekExplanation: Perform the "./setup configure" action. Outputs the dist/setup-config file.  Configurationmodule! Distribution.PackageDescription. ConfigurationcConfigurations Compilermodule Distribution.Simple.CompilerHaskell implementations. Compilermodule Distribution.CompilerHaskell compiler flavors Commandmodule Distribution.Simple.CommandmHExplanation: Data types and parser for the standard command-line setup. Checkmodule! Distribution.PackageDescription.CheckAThis module provides functionality to check for common mistakes. Cabalpackage CabalkzA framework for packaging Haskell software The Haskell Common Architecture for Building Applications and Libraries: a framework defining a common interface for authors to more easily build their Haskell applications in a portable way. The Haskell Cabal is meant to be a part of a larger infrastructure for distributing, organizing, and cataloging Haskell libraries and tools.  BuildPathsmodule Distribution.Simple. BuildPaths/IA bunch of dirs, paths and file names used for intermediate build steps. Buildmodule Distribution.Simple.Build`Invokes the Distribution.Compilers to build the library and executables in this package. )L6#ԾmT>(׽rC!ȼnQ3л}dK1Ⱥ DistributionSimple SetupWrapper DistributionSimple PreProcessUnlit DistributionSimple InstallDirs DistributionSimpleHugs DistributionSimpleNHC DistributionSimpleJHC DistributionSimpleGHC DistributionSimpleHaddock DistributionSimpleInstall DistributionSimple BuildPaths DistributionSimpleLocalBuildInfo DistributionSimple Configure DistributionSimpleRegister DistributionSimpleSrcDist DistributionSimpleBuild DistributionSimple PreProcess DistributionSimple UserHooks DistributionSimpleCompiler DistributionReadE DistributionPackageDescriptionCheck DistributionSimple PackageIndex DistributionPackageDescription Configuration Distribution Verbosity DistributionSystem DistributionSimpleUtils DistributionSimpleCommand DistributionPackageDescription DistributionSimpleProgram DistributionMake DistributionPackage DistributionLicense Distribution ParseUtils DistributionInstalledPackageInfo DistributionSimpleSetup DistributionSimple DistributionSetupLanguageHaskell Extension Distribution Extension DistributionCompatReadP DistributionText DistributionVersion DistributionCompilerkCabal1.4.0.1Chttp://hackage.haskell.org/packages/archive/Cabal/1.4.0.1/doc/html/@http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Cabal