-- | An installation plan is closed if for every package in the set, all of
-- its dependencies are also in the set. That is, the set is closed under the
-- dependency relation.
--
-- * if the result is @False@ use 'PackageIndex.brokenPackages' to find out
--   which packages depend on packages not in the index.
--
closed :: (PackageFixedDeps ipkg,
           PackageFixedDeps srcpkg)
       => PlanIndex ipkg srcpkg iresult ifailure -> Bool
closed = null . PlanIndex.brokenPackages
closed :: (PackageFixedDeps ipkg,
           PackageFixedDeps srcpkg)
       => PlanIndex ipkg srcpkg iresult ifailure -> Bool
closed = null . PlanIndex.brokenPackages
closed = null . PlanIndex.brokenPackages