cabal-matrix-1.0.0.0: Matrix builds for cabal
Safe HaskellNone
LanguageGHC2021

Cabal.Matrix.Matrix

Synopsis

Documentation

type Matrix = Rectangle Flavor Text (Maybe Text) Source #

A build matrix is represented by a rectangle, where properties that we iterate over correspond to columns (first Text), and desired combinations of values of those properties (second Text) correspond to rows. Each row is then marked with the collection of options that this combination of choices produces (the Flavor).

newtype Compiler Source #

Constructors

Compiler FilePath 

Instances

Instances details
Show Compiler Source # 
Instance details

Defined in Cabal.Matrix.Matrix

data Prefer Source #

Constructors

PreferOldest 
PreferNewest 

Instances

Instances details
Show Prefer Source # 
Instance details

Defined in Cabal.Matrix.Matrix

Eq Prefer Source # 
Instance details

Defined in Cabal.Matrix.Matrix

Methods

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

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

data MatrixExpr Source #

An unevaluated build matrix expression. Matrices can contain exponentially many rows in the worst case, so it makes sense to delay converting into an evaluated representation.

data EvalM a Source #

Evaluating the build matrix expression may require access to the source package DB, but if it doesn't, we'd like to avoid loading it.

Constructors

EvalPure a 
EvalWithDB (SourcePackageDb -> a) 

Instances

Instances details
Applicative EvalM Source # 
Instance details

Defined in Cabal.Matrix.Matrix

Methods

pure :: a -> EvalM a #

(<*>) :: EvalM (a -> b) -> EvalM a -> EvalM b #

liftA2 :: (a -> b -> c) -> EvalM a -> EvalM b -> EvalM c #

(*>) :: EvalM a -> EvalM b -> EvalM b #

(<*) :: EvalM a -> EvalM b -> EvalM a #

Functor EvalM Source # 
Instance details

Defined in Cabal.Matrix.Matrix

Methods

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

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