module Distribution.Nixpkgs.Haskell.Constraint ( Constraint, satisfiesConstraint, satisfiesConstraints ) where import Distribution.Package import Distribution.Version import Distribution.Nixpkgs.Haskell.OrphanInstances ( ) type Constraint = Dependency satisfiesConstraint :: PackageIdentifier -> Constraint -> Bool satisfiesConstraint :: PackageIdentifier -> Constraint -> Bool satisfiesConstraint (PackageIdentifier PackageName pn Version v) (Dependency PackageName cn VersionRange vr Set LibraryName _) = (PackageName pn PackageName -> PackageName -> Bool forall a. Eq a => a -> a -> Bool /= PackageName cn) Bool -> Bool -> Bool || (Version v Version -> VersionRange -> Bool `withinRange` VersionRange vr) satisfiesConstraints :: PackageIdentifier -> [Constraint] -> Bool satisfiesConstraints :: PackageIdentifier -> [Constraint] -> Bool satisfiesConstraints PackageIdentifier p = (Constraint -> Bool) -> [Constraint] -> Bool forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool all (PackageIdentifier -> Constraint -> Bool satisfiesConstraint PackageIdentifier p)