module Hix.Managed.Cabal.Installed where import Distribution.Simple.PackageIndex (InstalledPackageIndex, lookupPackageName) import qualified Hix.Data.PackageName as PackageName import Hix.Data.PackageName (PackageName) import Hix.Data.Version (Version) installedVersion :: InstalledPackageIndex -> PackageName -> Maybe Version installedVersion :: InstalledPackageIndex -> PackageName -> Maybe Version installedVersion InstalledPackageIndex index PackageName name = (Version, [InstalledPackageInfo]) -> Version forall a b. (a, b) -> a fst ((Version, [InstalledPackageInfo]) -> Version) -> Maybe (Version, [InstalledPackageInfo]) -> Maybe Version forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> [(Version, [InstalledPackageInfo])] -> Maybe (Version, [InstalledPackageInfo]) forall a. [a] -> Maybe a head (InstalledPackageIndex -> PackageName -> [(Version, [InstalledPackageInfo])] forall a. PackageIndex a -> PackageName -> [(Version, [a])] lookupPackageName InstalledPackageIndex index (PackageName -> PackageName PackageName.toCabal PackageName name))