{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} module HaskellWorks.CabalCache.Concurrent.Type ( DownloadQueue(..) , ConsumerId , ProviderId , PackageId ) where import GHC.Generics import HaskellWorks.CabalCache.Types (PackageId) import qualified Control.Concurrent.STM as STM import qualified Data.Relation as R import qualified Data.Set as S type ConsumerId = PackageId type ProviderId = PackageId data DownloadQueue = DownloadQueue { tDependencies :: STM.TVar (R.Relation ConsumerId ProviderId) , tUploading :: STM.TVar (S.Set PackageId) , tFailures :: STM.TVar (S.Set PackageId) } deriving Generic