@@ -43,12 +43,11 @@ getPackage :: Bool
4343 -> Source
4444 -> IO Package
4545getPackage optHpack optHackageDB optHackageSnapshot source = do
46− hackageDB <- loadHackageDB optHackageDB optHackageSnapshot
47− getPackage' optHpack hackageDB source
46+ getPackage' optHpack (loadHackageDB optHackageDB optHackageSnapshot) source
4847
4948getPackage' :: Bool
5049 -- ^ Whether hpack should regenerate the cabal file.
51− -> DB.HackageDB
50+ -> IO DB.HackageDB
5251 -> Source
5352 -> IO Package
5453getPackage' optHpack hackageDB source = do
@@ -57,7 +56,7 @@ getPackage' optHpack hackageDB source = do
5756
5857fetchOrFromDB :: Bool
5958 -- ^ Whether hpack should regenerate the cabal file
60− -> DB.HackageDB
59+ -> IO DB.HackageDB
6160 -> Source
6261 -> IO (Maybe DerivationSource, Bool, Cabal.GenericPackageDescription)
6362fetchOrFromDB optHpack hackageDB src
@@ -80,10 +79,11 @@ loadHackageDB optHackageDB optHackageSnapshot = do
8079 dbPath <- maybe DB.hackageTarball return optHackageDB
8180 DB.readTarball optHackageSnapshot dbPath
8281
83−fromDB :: DB.HackageDB
82+fromDB :: IO DB.HackageDB
8483 -> String
8584 -> IO (Maybe DerivationSource, Cabal.GenericPackageDescription)
86−fromDB hackageDB pkg = do
85+fromDB hackageDBIO pkg = do
86+ hackageDB <- hackageDBIO
8787 vd <- maybe unknownPackageError return (DB.lookup name hackageDB >>= lookupVersion)
8888 let ds = case DB.tarballSha256 vd of
8989 Nothing -> Nothing