cabal-install-3.4.0.0: Distribution/Client/Types/ReadyPackage.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Distribution.Client.Types.ReadyPackage (
GenericReadyPackage (..),
ReadyPackage,
) where
import Distribution.Client.Compat.Prelude
import Prelude ()
import Distribution.Compat.Graph (IsNode (..))
import Distribution.Package (HasMungedPackageId, HasUnitId, Package, PackageInstalled)
import Distribution.Client.Types.ConfiguredPackage (ConfiguredPackage)
import Distribution.Client.Types.PackageLocation (UnresolvedPkgLoc)
import Distribution.Solver.Types.PackageFixedDeps
-- | Like 'ConfiguredPackage', but with all dependencies guaranteed to be
-- installed already, hence itself ready to be installed.
newtype GenericReadyPackage srcpkg = ReadyPackage srcpkg -- see 'ConfiguredPackage'.
deriving (Eq, Show, Generic, Package, PackageFixedDeps,
HasMungedPackageId, HasUnitId, PackageInstalled, Binary)
-- Can't newtype derive this
instance IsNode srcpkg => IsNode (GenericReadyPackage srcpkg) where
type Key (GenericReadyPackage srcpkg) = Key srcpkg
nodeKey (ReadyPackage spkg) = nodeKey spkg
nodeNeighbors (ReadyPackage spkg) = nodeNeighbors spkg
type ReadyPackage = GenericReadyPackage (ConfiguredPackage UnresolvedPkgLoc)