wS      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  SafeNone5  !"#$%&'()*+,-./01235  !"#$%&'()*+,-./0123None4 A variant of G that adds the SHA256 digest of the original Cabal file to the parsed . That hash is required to build packages with an "edited" cabal file, because Nix needs to download the edited file and patch it into the original tarball.45      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab454545None6'Map Cabal names to Nix attribute names.7FMap library names specified in Cabal files to Nix package identifiers.]TODO: This list should not be hard-coded here; it belongs into the Nixpkgs repository.;TODO: Re-use hook matching system from PostProcess.hs here.8,Map build tool names to Nix attribute names.c|Helper function to extract the package name from a String that may or may not be formatted like a Cabal package identifier.guessNixIdentifier "foo-1.0"Identifier "foo"guessNixIdentifier "foo"Identifier "foo"guessNixIdentifier "foo - 0"Identifier "foo - 0"guessNixIdentifier "1foo-1.0"Identifier "1foo"guessNixIdentifier "-foo-1.0"Identifier "-foo-1.0"678c678678678cNone$9999None:de:::deNone;<=;<=;<=;<=None!"59;@Target compiler. Used by finalizePackageDescription/ to choose appropriate flags and dependencies.A6Compiler core packages that are also found on Hackage.BSThese packages replace the latest respective version during dependency resolution.CbThese packages are added to the generated set, but the play no role during dependency resolution.DWe know that these packages won't build, so we give them an empty meta.hydraPlatforms attribute to avoid cluttering our Hydra output with lots of failure messages.E This information is used by the  hackage2nix utility to determine the  maintainers for a given Haskell package.>?@ABCDEfFGHIJKL >?@ABCDEFG >?@ABCDEFG >?@ABCDEfFGHIJKLNone59;<=OghijkSTUVWXYZOSTUVWOSTUVW OghijkSTUVWXYZ None!"5T [rA source for a derivation. It always needs a hash and also has a protocol attached to it (url, git, svn, ...). A DerivationSourceK also always has it's revision fully resolved (not relative revisions like master, HEAD, etc).]VThe kind of the source. The name of the build-support fetch derivation should be fetch kind.^URL to fetch from._FRevision to use. Leave empty if the fetcher doesn't support revisions.`The hash of the source.eSA source is a location from which we can fetch, such as a HTTP URL, a GIT URL, ....gURL to fetch from.hpRevision to use. For protocols where this doesn't make sense (such as HTTP), this should be the empty string.i.The expected hash of the source, if available.j$Directory where Cabal file is found.lAFetch a source, trying any of the various nix-prefetch-* scripts.mLike l,, but allows to specify which script to use.[\]^_`abcdefghijlmklOThis function is passed the output path name as an argument. It should return n if the file doesn't match the expected format. This is required, because we cannot always check if a download succeeded otherwise.The source to fetch from.hThe derivation source and the result of the processing function. Returns Nothing if the download failed.monopq[\]^_`abcdefghijklmefghijabcd[\]^_`klm [\]^_`abcdefghijlmklmonopq None !"59;<=~yA represtation of Nix expressions for building Haskell packages. The data type correspond closely to the definition of PackageDescription from Cabal.;~pqrstuvwxyz{|}~~~ ~pqrstuvwxyz{|}~None#OSTUVW~ NoneWhen a flag is specified multiple times, the first occurrence counts. This is counter-intuitive, IMHO, but it's how cabal does it. Flag names are spelled in all lowercase.cnormalizeCabalFlags [(mkFlagName "foo", True), (mkFlagName "FOO", True), (mkFlagName "Foo", False)][(FlagName "foo",True)] None None!"None None!"  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPPQRSTUVWXYZ[\]^_`abcdefgh>ij k k l m n o p q r s t t u v w x y z { | } ~           !"#$%&'()*+,-./012345+678797:7;7<7=7>7?7@7A7B7C7D7E7F7G7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z7[7\7]7^7_7`7a7b7c7d7e7fghgigjgkglglgmgngopqprpsptpupupvpwpxpypzp{|}|~``        !"#$%&'()*+,-./0121314151678797:7;7<7=7>7?7@ABACADAEAFAGAHIJKLMNMOMPMQMRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~`                                                          $cabal2nix-2.4-80A97GJl5goDRxhGJfoaO9,Distribution.Nixpkgs.Haskell.OrphanInstances$Distribution.Nixpkgs.Haskell.Hackage+Distribution.Nixpkgs.Haskell.FromCabal.Name.Distribution.Nixpkgs.Haskell.FromCabal.License,Distribution.Nixpkgs.Haskell.FromCabal.Flags'Distribution.Nixpkgs.Haskell.Constraint4Distribution.Nixpkgs.Haskell.FromCabal.Configuration&Distribution.Nixpkgs.Haskell.BuildInfoDistribution.Nixpkgs.Fetch'Distribution.Nixpkgs.Haskell.Derivation0Distribution.Nixpkgs.Haskell.FromCabal.Normalize2Distribution.Nixpkgs.Haskell.FromCabal.PostProcess&Distribution.Nixpkgs.Haskell.FromCabal.Distribution.Nixpkgs.Haskell.PackageSourceSpec Cabal2nixPaths_cabal2nixDistribution.Nixpkgs.Haskell$fFromJSONCompilerInfo$fFromJSONDependency$fFromJSONPackageIdentifier$fFromJSONPackageName$fFromJSONPlatform$fIsStringPlatform$fIsStringCompilerId$fIsStringDependency$fIsStringPackageIdentifier$fIsStringVersion$fNFDataAbiTag$fNFDataCompilerId$fNFDataCompilerInfo$fNFDataPlatform$fNFDataCondition$fNFDataTestType$fNFDataTestSuiteInterface$fNFDataTestSuite$fNFDataSourceRepo$fNFDataRepoType$fNFDataRepoKind$fNFDataPackageDescription $fNFDataOS$fNFDataModuleRenaming$fNFDataModuleReexport$fNFDataLicense$fNFDataForeignLib$fNFDataLibrary$fNFDataLanguage$fNFDataKnownExtension!$fNFDataGenericPackageDescription$fNFDataFlagName $fNFDataMixin $fNFDataFlag$fNFDataExtension$fNFDataExecutable$fNFDataForeignLibOption$fNFDataForeignLibType$fNFDataIncludeRenaming$fNFDataExecutableScope$fNFDataConfVar$fNFDataCompilerFlavor$fNFDataLibVersionInfo$fNFDataBuildType$fNFDataBuildInfo$fNFDataBenchmarkType$fNFDataBenchmarkInterface$fNFDataBenchmark $fNFDataArch$fNFDataCondBranch$fNFDataCondTree$fNFDataSetupBuildInforeadHashedHackagereadHashedHackage' toNixName libNixNamebuildToolNixNamefromCabalLicenseconfigureCabalFlags ConstraintsatisfiesConstraintsatisfiesConstraints Configuration compilerInfo corePackagesdefaultPackageOverrides extraPackagesdontDistributePackagespackageMaintainersreadConfigurationassertConsistency$fFromJSONKeyPackageName$fFromJSONKeyIdentifier$fFromJSONIdentifier$fFromJSONConfiguration$fNFDataConfiguration$fShowConfiguration$fGenericConfiguration BuildInfo$fShowBuildInfo $fEqBuildInfo$fGenericBuildInfohaskell pkgconfigsystemtoolpPrintBuildInfo$fMonoidBuildInfo$fEachBuildInfoBuildInfoSetSetDerivationSource derivKindderivUrl derivRevision derivHashHashCertainGuess UnknownHashSource sourceUrlsourceRevision sourceHashsourceCabalDirfromDerivationSourcefetch fetchWith$fFromJSONDerivationSource$fNFDataDerivationSource $fNFDataHash$fNFDataSource $fShowHash$fEqHash $fOrdHash $fGenericHash $fShowSource $fEqSource $fOrdSource$fGenericSource$fShowDerivationSource$fEqDerivationSource$fOrdDerivationSource$fGenericDerivationSource DerivationnullDerivation$fShowDerivation$fEqDerivation$fGenericDerivationbenchmarkDepends cabalFlagsconfigureFlagsdoCheckeditedCabalFileenableExecutableProfilingenableLibraryProfilingenableSeparateDataOutputenableSplitObjsexecutableDependsextraFunctionArgshyperlinkSource isExecutable isLibrary jailbreaklibraryDepends metaSectionphaseOverridespkgidrevision runHaddock setupDependssrcsubpath testDepends testTarget dependencies$fPrettyDerivation$fNFDataDerivation$fPackageDerivation normalizenormalizeCabalFlags postProcessNixpkgsResolverHaskellResolverfromGenericPackageDescriptionfromPackageDescriptionPackage pkgSourcepkgCabal getPackagesourceFromHackage $fShowPackagemain cabal2nix' cabal2nix $fShowOptionscatchIOversionbindirlibdir dynlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName text2isString&hackage-db-1.22-79cqJAPg2AkF1fdeQAL231Distribution.Hackage.DB.Parsed readHackage$Cabal-2.0.0.2-B4YxsRmpeLCDyDZ1N9nEz7,Distribution.Types.GenericPackageDescriptionGenericPackageDescriptionbase Data.VersionVersion versionBranch versionTagscontainers-0.5.7.1 Data.Map.Base!\\nullsizelookupmember notMemberlookupLTlookupGTlookupLElookupGEemptydelete findIndex lookupIndexelemAtdeleteAtfindMinfindMax deleteMin deleteMaxminViewWithKeymaxViewWithKeyminViewmaxViewunionsunion difference intersection isSubmapOf isSubmapOfByisProperSubmapOfisProperSubmapOfByfilter filterWithKey partitionpartitionWithKeytraverseWithKeymapKeysmapKeysMonotonicfoldrfoldr'foldlfoldl' foldrWithKey foldrWithKey' foldlWithKey foldlWithKey'foldMapWithKeyelemskeysassocskeysSettoList toAscList toDescListsplit splitLookup deleteFindMin deleteFindMaxshowTree showTreeWithvalid splitRootparseFlagAssignmentdispFlagAssignment showFlagValue unFlagName mkFlagName emptyFlagpackageDescriptiongenPackageFlags condLibrarycondSubLibrariescondForeignLibscondExecutablescondTestSuitescondBenchmarksFlagMkFlagflagNameflagDescription flagDefault flagManualFlagNameFlagAssignmentConfVarArchOSImpl%Distribution.Types.PackageDescriptionupdatePackageDescription allBuildInfo withBenchmark hasBenchmarkswithTesthasTestswithExehasExeswithLib allLibrarieshasLibs hasPublicLibemptyPackageDescriptiondescCabalVersion specVersionPackageDescriptionpackagelicense licenseFiles copyright maintainerauthor stability testedWithhomepagepkgUrl bugReports sourceRepossynopsis descriptioncategorycustomFieldsPD buildDependsspecVersionRaw buildTypesetupBuildInfolibrary subLibraries executables foreignLibs testSuites benchmarks dataFilesdataDir extraSrcFiles extraTmpFiles extraDocFilesDistribution.Types.TestSuitetestModulesAutogen testModulestestTypeemptyTestSuite TestSuitetestName testInterface testBuildInfoDistribution.Types.Library libModuleslibModulesAutogenexplicitLibModules emptyLibraryLibrarylibNameexposedModulesreexportedModules signatures libExposed libBuildInfo"Distribution.Types.HookedBuildInfoemptyHookedBuildInfoHookedBuildInfoDistribution.Types.ExecutableexeModulesAutogen exeModulesemptyExecutable ExecutableexeName modulePathexeScope buildInfoDistribution.Types.BenchmarkbenchmarkModulesAutogenbenchmarkModules benchmarkTypeemptyBenchmark Benchmark benchmarkNamebenchmarkInterfacebenchmarkBuildInfoDistribution.Types.BuildInfohcSharedOptions hcProfOptions hcOptionsusedExtensions allExtensions allLanguagesemptyBuildInfooptions buildable buildToolsbuildToolDepends cppOptions ccOptions ldOptionspkgconfigDepends frameworksextraFrameworkDirscSources jsSources hsSourceDirs otherModulesautogenModulesdefaultLanguageotherLanguagesdefaultExtensionsotherExtensions oldExtensions extraLibs extraGHCiLibs extraLibDirs includeDirsincludesinstallIncludes profOptions sharedOptionscustomFieldsBItargetBuildDependsmixinsDistribution.PackageinstalledPackageIdpackageVersion packageNamemungedVersion' mungedName' packageIdHasMungedPackageIdmungedId HasUnitIdinstalledUnitIdPackageInstalledinstalledDepends Distribution.Types.ComponentNamedefaultLibName ComponentNameCLibName CSubLibName CFLibNameCExeName CTestName CBenchNameDistribution.Types.ModuleModuleDistribution.Types.UnitIdunsafeMkDefUnitIdgetHSLibraryNamemkLegacyUnitIdnewSimpleUnitIdmkUnitIdunUnitIdUnitIdInstalledPackageId DefUnitId unDefUnitId!Distribution.Types.SetupBuildInfoSetupBuildInfodefaultSetupDependsDistribution.Types.DependencysimplifyDependencynotThisPackageVersionthisPackageVersion depVerRange depPkgName DependencyDistribution.Types.PackageId PackageIdPackageIdentifierpkgName pkgVersion!Distribution.Types.ModuleReexportModuleReexportmoduleReexportOriginalPackagemoduleReexportOriginalNamemoduleReexportNameDistribution.Types.PackageName mkPackageName unPackageName PackageName%Distribution.Types.TestSuiteInterfaceTestSuiteInterfaceTestSuiteExeV10TestSuiteLibV09TestSuiteUnsupportedDistribution.Types.TestTypeknownTestTypesTestType TestTypeExe TestTypeLibTestTypeUnknown%Distribution.Types.BenchmarkInterfaceBenchmarkInterfaceBenchmarkExeV10BenchmarkUnsupported Distribution.Types.BenchmarkTypeknownBenchmarkTypes BenchmarkTypeBenchmarkTypeExeBenchmarkTypeUnknown Distribution.Types.PkgconfigNamemkPkgconfigNameunPkgconfigName PkgconfigNameDistribution.Types.ComponentId unComponentId mkComponentId ComponentIdDistribution.Types.AbiHash mkAbiHash unAbiHashAbiHash!Distribution.Types.ModuleRenamingdefaultRenamingModuleRenamingDefaultRenamingHidingRenamingDistribution.Types.SourceRepoknownRepoTypesemptySourceRepo SourceReporepoKindrepoType repoLocation repoModule repoBranchrepoTag repoSubdirRepoKindRepoHeadRepoThisRepoKindUnknownRepoTypeDarcsGitSVNCVS MercurialGnuArchBazaarMonotone OtherRepoTypeDistribution.Types.CondTreeCondTreeCondNode condTreeDatacondTreeConstraintscondTreeComponentsDistribution.Types.ConditioncOrcAndcNot ConditionVarLitCNotCOrCAndDistribution.Types.BuildTypeknownBuildTypes BuildTypeSimple ConfigureMakeCustomUnknownBuildTypeMap makeVersion parseVersion showVersionData.Map foldWithKeyfoldinsertLookupWithKey'insertWithKey' insertWith'fromDistinctAscListfromAscListWithKeyfromAscListWith fromAscListfromListWithKey fromListWithfromListfromSet mapKeysWithmapAccumRWithKeymapAccumWithKeymapAccum mapWithKeymapmapEitherWithKey mapEithermapMaybeWithKeymapMaybe mergeWithKeyintersectionWithKeyintersectionWithdifferenceWithKeydifferenceWith unionWithKey unionWith unionsWithupdateMaxWithKeyupdateMinWithKey updateMax updateMinupdateAtalterupdateLookupWithKey updateWithKeyupdate adjustWithKeyadjustinsertLookupWithKey insertWithKey insertWithinsert singletonfindWithDefault parseHackage readHackage'HackageDistribution.Hackage.DB.Path hackagePathguessNixIdentifierenabledisableparseKey_haskell _pkgconfig_system_tool isUnknown hashToListGHC.BaseNothing stripPrefix MkDerivation_pkgid _revision_src_subpath _isLibrary _isExecutable_extraFunctionArgs _setupDepends_libraryDepends_executableDepends _testDepends_benchmarkDepends_configureFlags _cabalFlags _runHaddock _jailbreak_doCheck _testTarget_hyperlinkSource_enableLibraryProfiling_enableExecutableProfiling_enableSplitObjs_phaseOverrides_editedCabalFile_enableSeparateDataOutput _metaSectionnormalizeBuildInfo normalizeMetanormalizeSynopsisquote fixGtkBuildshookspkgpkgsbindreplacegtk3Hook haddockHook gitAnnexHookhfusePreConfiguregfPhaseOverrideswxcHookcabalInstallPostInstalldarcsInstallPostInstallxmonadPostInstallagdaPostInstallagda25PostInstallstackOverridesgiGstLibOverridesgiCairoPhaseOverrideshfseventsOverrideswebkitgtk24xHookopencvOverridesbindNull fetchOrFromDBfromDB readFileMay hashCachePathshowPackageIdentifier cabalFromPathcabalFromDirectoryhandleIO cabalFromFileOptions optSha256 optMaintainer optHaddock optDoCheck optJailbreak optRevisionoptHyperlinkSourceoptEnableLibraryProfilingoptEnableExecutableProfilingoptEnableProfiling optExtraArgs optHackageDboptNixShellOutputoptFlags optCompiler optSystem optSubpathoptUrlreadP parsePlatformpinfo readFlagList