module Hix.Managed.Cabal.Config where import qualified Data.Set as Set import qualified Hix.Data.PackageId import Hix.Data.PackageId (PackageId) import Hix.Data.PackageName (PackageName) import Hix.Managed.Data.Mutable (MutableDep, depName) nonReinstallableNames :: Set PackageName nonReinstallableNames :: Set PackageName nonReinstallableNames = [ Item (Set PackageName) PackageName "base", Item (Set PackageName) PackageName "ghc-bignum", Item (Set PackageName) PackageName "ghc-prim", Item (Set PackageName) PackageName "ghc", Item (Set PackageName) PackageName "integer-gmp", Item (Set PackageName) PackageName "integer-simple", Item (Set PackageName) PackageName "template-haskell" ] isNonReinstallable :: PackageName -> Bool isNonReinstallable :: PackageName -> Bool isNonReinstallable = (PackageName -> Set PackageName -> Bool) -> Set PackageName -> PackageName -> Bool forall a b c. (a -> b -> c) -> b -> a -> c flip PackageName -> Set PackageName -> Bool forall a. Ord a => a -> Set a -> Bool Set.member Set PackageName nonReinstallableNames isReinstallable :: PackageName -> Bool isReinstallable :: PackageName -> Bool isReinstallable = Bool -> Bool not (Bool -> Bool) -> (PackageName -> Bool) -> PackageName -> Bool forall b c a. (b -> c) -> (a -> b) -> a -> c . PackageName -> Bool isNonReinstallable isNonReinstallableId :: PackageId -> Bool isNonReinstallableId :: PackageId -> Bool isNonReinstallableId PackageId package = PackageName -> Bool isNonReinstallable PackageId package.name isReinstallableId :: PackageId -> Bool isReinstallableId :: PackageId -> Bool isReinstallableId PackageId package = PackageName -> Bool isReinstallable PackageId package.name isNonReinstallableDep :: MutableDep -> Bool isNonReinstallableDep :: MutableDep -> Bool isNonReinstallableDep = PackageName -> Bool isNonReinstallable (PackageName -> Bool) -> (MutableDep -> PackageName) -> MutableDep -> Bool forall b c a. (b -> c) -> (a -> b) -> a -> c . MutableDep -> PackageName depName