\portable provisionalsimons@cryp.toA 5 representation of the Hackage database. For sake of  simplicity, we use  rather than  to represent  the name of a package. Read the Hackage database from  $HOME/.cabal/packages/hackage.haskell.org/ 00-index.tar and  return a 1 that provides fast access to its contents. That tar 2 file is typically created by running the command " cabal update". )Read the Hackage database from the given  and return a  0 map that provides fast access to its contents. Parse the contents of Hackage's  00-index.tar into a  map. +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-                    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H H I J K L M N O P Q R R S T U V V W X Y Z [ [ \ ] ^ _ ` 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 { | } } ~                                                                         !"#$%&'()*hackage-db-1.0Distribution.Hackage.DBHackage readHackage readHackage' parseHackagecontainers-0.4.1.0Data.MapMapbaseGHC.BaseString Cabal-1.12.0Distribution.Package PackageNameGHC.IOFilePathDistribution.PackageDescriptionupdatePackageDescriptionknownRepoTypes hcOptionsemptyHookedBuildInfousedExtensions allExtensions allLanguages allBuildInfoemptyBuildInfotestTypeknownTestTypes testModuleswithTest enabledTestshasTestsemptyTestSuite exeModuleswithExehasExesemptyExecutable libModuleswithLibhasLibs emptyLibraryknownBuildTypesemptyPackageDescriptiondescCabalVersion specVersion extraTmpFiles extraSrcFilesdataDir dataFiles testSuites executableslibrary buildTypespecVersionRaw buildDependscustomFieldsPDcategory descriptionsynopsis sourceRepos bugReportspkgUrlhomepage testedWith stabilityauthor maintainer copyright licenseFilelicensepackagePackageDescriptionSimple ConfigureMakeCustomUnknownBuildType BuildType libBuildInfo libExposedexposedModulesLibrary buildInfo modulePathexeName Executable testEnabled testBuildInfo testInterfacetestName TestSuiteTestSuiteExeV10TestSuiteLibV09TestSuiteUnsupportedTestSuiteInterface TestTypeExe TestTypeLibTestTypeUnknownTestTypetargetBuildDependscustomFieldsBIghcSharedOptionsghcProfOptionsoptionsinstallIncludesincludes includeDirs extraLibDirs extraLibs oldExtensionsotherExtensionsdefaultExtensionsotherLanguagesdefaultLanguage otherModules hsSourceDirscSources frameworkspkgconfigDepends ldOptions ccOptions cppOptions buildTools buildable BuildInfoHookedBuildInfo repoSubdirrepoTag repoBranch repoModule repoLocationrepoTyperepoKind SourceRepoRepoHeadRepoThisRepoKindUnknownRepoKindDarcsGitSVNCVS MercurialGnuArchBazaarMonotone OtherRepoTypeRepoTypecondTestSuitescondExecutables condLibrarygenPackageFlagspackageDescriptionGenericPackageDescription flagManual flagDefaultflagDescriptionflagNameMkFlagFlagFlagNameFlagAssignmentOSArchImplConfVarVarLitCNotCOrCAnd ConditioncondTreeComponentscondTreeConstraints condTreeDataCondNodeCondTreepackageVersion packageNamesimplifyDependencynotThisPackageVersionthisPackageVersion PackageId pkgVersionpkgNamePackageIdentifierInstalledPackageId Dependency packageIdPackagedependsPackageFixedDeps Data.VersionVersion versionBranch versionTags parseVersion showVersionvalid showTreeWithshowTree deleteFindMax deleteFindMin splitLookupsplitfromDistinctAscListfromAscListWithKeyfromAscListWith fromAscList toDescList toAscListtoListfromListWithKey fromListWithfromListassocskeysSetkeyselems foldlWithKey' foldlWithKey foldrWithKey' foldrWithKey foldWithKeyfoldmapKeysMonotonic mapKeysWithmapKeysmapAccumRWithKeymapAccumWithKeymapAccum mapWithKeymapmapEitherWithKey mapEithermapMaybeWithKeymapMaybepartitionWithKey partition filterWithKeyfilterisProperSubmapOfByisProperSubmapOf isSubmapOfBy isSubmapOfintersectionWithKeyintersectionWith intersectiondifferenceWithKeydifferenceWith difference unionWithKey unionWithunion unionsWithunionsmaxViewminViewmaxViewWithKeyminViewWithKeyupdateMaxWithKeyupdateMinWithKey updateMax updateMin deleteMax deleteMinfindMaxfindMindeleteAtupdateAtelemAt lookupIndex findIndexalterupdateLookupWithKey updateWithKeyupdate adjustWithKeyadjustdeleteinsertLookupWithKey'insertLookupWithKeyinsertWithKey' insertWithKey insertWith' insertWithinsert singletonemptyfindWithDefault notMembermemberlookupsizenull\\!