packages feed

cabal2nix-2.18.0: src/Distribution/Nixpkgs/Haskell/Constraint.hs

module Distribution.Nixpkgs.Haskell.Constraint
  ( Constraint, constraintPkgName, satisfiesConstraint, satisfiesConstraints
  ) where

import Distribution.Package
import Distribution.Version
import Distribution.Types.PackageVersionConstraint
import Distribution.Nixpkgs.Haskell.OrphanInstances ( )

type Constraint = PackageVersionConstraint

constraintPkgName :: Constraint -> PackageName
constraintPkgName (PackageVersionConstraint n _) = n

satisfiesConstraint :: PackageIdentifier -> Constraint -> Bool
satisfiesConstraint (PackageIdentifier pn v) (PackageVersionConstraint cn vr) = (pn /= cn) || (v `withinRange` vr)

satisfiesConstraints :: PackageIdentifier -> [Constraint] -> Bool
satisfiesConstraints p = all (satisfiesConstraint p)