cabal-install-solver
Safe HaskellSafe-Inferred
LanguageHaskell2010

Distribution.Solver.Modular.ConflictSet

Description

Conflict sets

Intended for double import

import Distribution.Solver.Modular.ConflictSet (ConflictSet)
import qualified Distribution.Solver.Modular.ConflictSet as CS
Synopsis

Documentation

data ConflictSet Source #

The set of variables involved in a solver conflict, each paired with details about the conflict.

data Conflict Source #

More detailed information about how a conflict set variable caused a conflict. This information can be used to determine whether a second value for that variable would lead to the same conflict.

TODO: Handle dependencies under flags or stanzas.

Constructors

GoalConflict QPN

The conflict set variable represents a package which depends on the specified problematic package. For example, the conflict set entry '(P x, GoalConflict y)' means that package x introduced package y, and y led to a conflict.

VersionConstraintConflict QPN Ver

The conflict set variable represents a package with a constraint that excluded the specified package and version. For example, the conflict set entry '(P x, VersionConstraintConflict y (mkVersion [2, 0]))' means that package x's constraint on y excluded y-2.0.

VersionConflict QPN OrderedVersionRange

The conflict set variable represents a package that was excluded by a constraint from the specified package. For example, the conflict set entry '(P x, VersionConflict y (orLaterVersion (mkVersion [2, 0])))' means that package y's constraint 'x >= 2.0' excluded some version of x.

OtherConflict

Any other conflict.

filter :: (a -> Bool) -> [a] -> [a] #

\(\mathcal{O}(n)\). filter, applied to a predicate and a list, returns the list of those elements that satisfy the predicate; i.e.,

filter p xs = [ x | x <- xs, p x]
>>> filter odd [1, 2, 3]
[1,3]