úÎaý\ Q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPNone1V&¨Grequested package id could not be found in any of the package databases7package database could not be parsed or contains errors!package db file could not be read1attempt to register an already present package id :attempt to register in the global db when it's not presentgA flag which tells whether the library should create an empty package database if it doesn't exist yetPackage database class.db{ will typically be a newtype-wrapped path to the database file, although more sophisticated setups are certainly possible.Consider using  C first, and implement your own database type if that isn't enough.7The name of the database. Used to construct some paths.Read a package database.˜If the database does not exist, then the first argument tells whether we should create and initialize it with an empty package list. In that case, if  is specified, a BadPkgDb exception is thrown.Write a package database>Get the location of a global package database (if there's one)-Create a db object given a database file path1Convert a package db specification to a db objectThe user database=Get all packages that are registered in a particular database?If the database doesn't exist, the behaviour is determined by .Try to retrieve an InstalledPackageInfo for each of Qs from a specified set of Rs. May throw a  exception.=If a database doesn't exist, the behaviour is determined by .cThis function determines whether a package database should be initialized if it doesn't exist yet.^The rule is this: if it is a global or a user database, then initialize it; otherwise, don't.ÞRationale: if the database was specified by the user, she could have made a mistake in the path, and we'd rather report it. On the other hand, it is our responsibility to ensure that the user and global databases exist.IMake all paths in the package info relative to the given base directory.nMake all relative paths in the package info absolute, interpreting them relative to the given base directory.FApply a given function to all file paths contained in the package info"SIf the path does not exist, create an empty database there. Otherwise, do nothing.   !"   !"    None ;=>?FKTVA8 ($A standard module monad transformer.i is the type of module info, m is the underlying monad.)tDifferent libraries (Cabal, haskell-src-exts, ...) use different types to represent module names. Hence this class.+1This class defines the interface that is used by 2/, so that you can use it in monads other than (.tYou don't typically have to define your own instances of this class, but here are a couple of cases when you might: A pure (non-S*) mockup module monad for testing purposesA transformer over (7You need a more complex way to retrieve the module info,The type of module info0GRead the module info, given a list of search paths and the module name1@Convert module name from arbitrary representation to Cabal's one2~Tries to find the module in the current set of packages, then find the module's info file, and reads and caches its contents.Returns Tµ if the module could not be found in the current set of packages. If the module is found, but something else goes wrong (e.g. there's no info file for it), an exception is thrown.3Run a ( action4Run a ( action. This is a simplified version of 3.3the monadic action to run%packages in which to look for modulesfile extension of info files)how to read information from an info fileinitial set of module infos~return value, plus all cached module infos (that is, the initial set plus all infos that have been read by the action itself)4the monadic action to run%packages in which to look for modulesfile extension of info files)how to read information from an info file ()*+,-./01234 (243+,-./0)*1(UV)*+,-./0None<FTVVž 'An abstraction over a Haskell compiler.Once you've written a  Compiler.4 instance, you get Cabal integration for free (via Compiler.).Consider whether  Compiler.B; suits your needs  then you need to write even less code.Minimal definition: C, D, E, F, G, H, I.F are only used for J, so if you define a custom J, FR won't be used (but you'll still get a compiler warning if you do not define it).C&The database type used by the compilerD+Compiler's name. Should not contain spaces.ECompiler's versionFmFile extensions of the files generated by the compiler. Those files will be copied during the install phase.GHow to compile a set of modulesH.Languages supported by this compiler (such as  Haskell98,  Haskell2010 etc.)I%Extensions supported by this compilerK€Register the package in the database. If a package with the same id is already installed, it should be replaced by the new one.LUnregister the packageNCompilation functionJ build dir target dir target dir for dynamic librariesNbuild directoryoptional default languagedefault extensions CPP options.name and version of the package being compiledpackage db stack to use dependencieslist of files to compileO compiler namecompiler version#extensions that generated file haveCDKLMJEFGHIBNOCDEFGHIJKLMNBO CDEFGHIJKLMBWXYZ[\]NoneW°-  !"()*+,-./01234SafeX¤^_`abcdeNone1V[õfg is defined in Distribution.Text with type *simpleParse :: Text a => String -> Maybe a(It is similar to h.)f wraps it as a i3 value to be used for parsing command-line optionsjkl      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYWZ[\]^\_`.aHbcdefgKhijklmnoWpq\rstuvwwx+haskell-packages-0.6-FZsr5JcI00NAOGpkqstXZW"Distribution.HaskellSuite.Compiler"Distribution.HaskellSuite.Packages!Distribution.HaskellSuite.ModulesDistribution.HaskellSuitePaths_haskell_packagesDistribution.HaskellSuite.CabalIs customMainmain PkgInfoErrorPkgInfoNotFound PkgDBErrorBadPkgDBPkgDBReadError PkgExistsRegisterNullDB StandardDBIsDBName getDBName MaybeInitDBInitDB Don'tInitDB IsPackageDBdbName readPackageDBwritePackageDBglobalDB dbFromPathlocateDBuserDBPackagesgetInstalledPackagesreadPackagesInfo maybeInitDBmakePkgInfoRelativemakePkgInfoAbsolutemapPathswriteDBreadDBinitDB$fIsPackageDBStandardDB$fExceptionPkgDBError$fShowPkgDBError$fShowPkgInfoError$fExceptionPkgInfoErrorModuleTModName modToString MonadModule ModuleInfo lookupInCache insertInCache getPackagesreadModuleInfoconvertModuleName getModuleInfo runModuleT evalModuleT$fModNameModuleName $fModName[]$fMonadStatesModuleT$fMonadReaderrModuleT$fMonadModuleModuleT$fMonadIOModuleT$fMonadTransModuleT$fFunctorModuleT$fApplicativeModuleT$fMonadModuleT$fMonadWriterModuleT$fMonadErrorModuleT$fMonadContModuleTSimpleDBnameversionfileExtensionscompile languageslanguageExtensions installLibregister unregisterlist CompileFnsimple $fIsSimple Cabal-2.0.1.0Distribution.Types.UnitIdUnitIdDistribution.Simple.Compiler PackageDBbaseControl.Monad.IO.ClassMonadIOGHC.BaseNothing unModuleTstNamestVerstLangs stLangExts stCompilestExts getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName simpleParseMDistribution.Text simpleParse Text.Readread4optparse-applicative-0.14.2.0-AUQ9DH6TF3F4sKRFEMN8lyOptions.Applicative.TypesReadMModuleNotFound