cabal-install-solver-3.8.1.0: The command-line interface for Cabal and Hackage.
Safe HaskellNone
LanguageHaskell2010

Distribution.Solver.Modular.Flag

Synopsis

Documentation

data FInfo Source #

Flag info. Default value, whether the flag is manual, and whether the flag is weak. Manual flags can only be set explicitly. Weak flags are typically deferred by the solver.

Constructors

FInfo 

Instances

Instances details
Eq FInfo Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

(==) :: FInfo -> FInfo -> Bool #

(/=) :: FInfo -> FInfo -> Bool #

Show FInfo Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

showsPrec :: Int -> FInfo -> ShowS #

show :: FInfo -> String #

showList :: [FInfo] -> ShowS #

type Flag = FlagName Source #

Flag identifier. Just a string.

type FlagInfo = Map Flag FInfo Source #

Flag defaults.

data FN qpn Source #

Flag name. Consists of a package instance and the flag identifier itself.

Constructors

FN qpn Flag 

Instances

Instances details
Functor FN Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

fmap :: (a -> b) -> FN a -> FN b #

(<$) :: a -> FN b -> FN a #

Eq qpn => Eq (FN qpn) Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

(==) :: FN qpn -> FN qpn -> Bool #

(/=) :: FN qpn -> FN qpn -> Bool #

Ord qpn => Ord (FN qpn) Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

compare :: FN qpn -> FN qpn -> Ordering #

(<) :: FN qpn -> FN qpn -> Bool #

(<=) :: FN qpn -> FN qpn -> Bool #

(>) :: FN qpn -> FN qpn -> Bool #

(>=) :: FN qpn -> FN qpn -> Bool #

max :: FN qpn -> FN qpn -> FN qpn #

min :: FN qpn -> FN qpn -> FN qpn #

Show qpn => Show (FN qpn) Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

showsPrec :: Int -> FN qpn -> ShowS #

show :: FN qpn -> String #

showList :: [FN qpn] -> ShowS #

type QFN = FN QPN Source #

Qualified flag name.

type QSN = SN QPN Source #

Qualified stanza name.

type Stanza = OptionalStanza Source #

Stanza identifier.

data SN qpn Source #

Stanza name. Paired with a package name, much like a flag.

Constructors

SN qpn Stanza 

Instances

Instances details
Functor SN Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

fmap :: (a -> b) -> SN a -> SN b #

(<$) :: a -> SN b -> SN a #

Eq qpn => Eq (SN qpn) Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

(==) :: SN qpn -> SN qpn -> Bool #

(/=) :: SN qpn -> SN qpn -> Bool #

Ord qpn => Ord (SN qpn) Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

compare :: SN qpn -> SN qpn -> Ordering #

(<) :: SN qpn -> SN qpn -> Bool #

(<=) :: SN qpn -> SN qpn -> Bool #

(>) :: SN qpn -> SN qpn -> Bool #

(>=) :: SN qpn -> SN qpn -> Bool #

max :: SN qpn -> SN qpn -> SN qpn #

min :: SN qpn -> SN qpn -> SN qpn #

Show qpn => Show (SN qpn) Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Methods

showsPrec :: Int -> SN qpn -> ShowS #

show :: SN qpn -> String #

showList :: [SN qpn] -> ShowS #

newtype WeakOrTrivial Source #

A property of flag and stanza choices that determines whether the choice should be deferred in the solving process.

A choice is called weak if we do want to defer it. This is the case for flags that should be implied by what's currently installed on the system, as opposed to flags that are used to explicitly enable or disable some functionality.

A choice is called trivial if it clearly does not matter. The special case of triviality we actually consider is if there are no new dependencies introduced by the choice.

Constructors

WeakOrTrivial 

data FlagValue Source #

Value shown for a flag in a solver log message. The message can refer to only the true choice, only the false choice, or both choices.

Constructors

FlagTrue 
FlagFalse 
FlagBoth 

Instances

Instances details
Eq FlagValue Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

Show FlagValue Source # 
Instance details

Defined in Distribution.Solver.Modular.Flag

showFlagValue :: FlagName -> FlagValue -> String Source #

String representation of a flag-value pair.