stack-2.15.1: The Haskell Tool Stack
Safe HaskellSafe-Inferred
LanguageGHC2021

Stack.Types.Component

Description

A module providing the types that represent different sorts of components of a package (library and sub-library, foreign library, executable, test suite and benchmark).

Synopsis

Documentation

data StackLibrary Source #

A type representing (unnamed) main library or sub-library components of a package.

Cabal-syntax uses data constructors LMainLibName and LSubLibName to distinguish main libraries and sub-libraries. We do not do so, as the 'missing' name in the case of a main library can be represented by the empty string.

The corresponding Cabal-syntax type is Library.

Instances

Instances details
Show StackLibrary Source # 
Instance details

Defined in Stack.Types.Component

HasField "qualifiedName" StackLibrary NamedComponent Source # 
Instance details

Defined in Stack.Types.Component

data StackForeignLibrary Source #

A type representing foreign library components of a package.

The corresponding Cabal-syntax type is ForeignLib.

data StackExecutable Source #

A type representing executable components of a package.

The corresponding Cabal-syntax type is Executable.

Instances

Instances details
Show StackExecutable Source # 
Instance details

Defined in Stack.Types.Component

HasField "qualifiedName" StackExecutable NamedComponent Source # 
Instance details

Defined in Stack.Types.Component

data StackTestSuite Source #

A type representing test suite components of a package.

The corresponding Cabal-syntax type is TestSuite.

Instances

Instances details
Show StackTestSuite Source # 
Instance details

Defined in Stack.Types.Component

HasField "qualifiedName" StackTestSuite NamedComponent Source # 
Instance details

Defined in Stack.Types.Component

data StackBenchmark Source #

A type representing benchmark components of a package.

The corresponding Cabal-syntax type is Benchmark.

Constructors

StackBenchmark 

Fields

Instances

Instances details
Show StackBenchmark Source # 
Instance details

Defined in Stack.Types.Component

HasField "qualifiedName" StackBenchmark NamedComponent Source # 
Instance details

Defined in Stack.Types.Component

newtype StackUnqualCompName Source #

Type representing the name of an 'unqualified' component (that is, the component can be any sort - a (unnamed) main library or sub-library, an executable, etc. ).

The corresponding The Cabal-syntax type is UnqualComponentName.

Constructors

StackUnqualCompName 

Instances

Instances details
Data StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> StackUnqualCompName -> c StackUnqualCompName #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c StackUnqualCompName #

toConstr :: StackUnqualCompName -> Constr #

dataTypeOf :: StackUnqualCompName -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c StackUnqualCompName) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c StackUnqualCompName) #

gmapT :: (forall b. Data b => b -> b) -> StackUnqualCompName -> StackUnqualCompName #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> StackUnqualCompName -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> StackUnqualCompName -> r #

gmapQ :: (forall d. Data d => d -> u) -> StackUnqualCompName -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> StackUnqualCompName -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> StackUnqualCompName -> m StackUnqualCompName #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> StackUnqualCompName -> m StackUnqualCompName #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> StackUnqualCompName -> m StackUnqualCompName #

IsString StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

Generic StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

Associated Types

type Rep StackUnqualCompName :: Type -> Type #

Read StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

Show StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

NFData StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

Methods

rnf :: StackUnqualCompName -> () #

Eq StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

Ord StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

Hashable StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

type Rep StackUnqualCompName Source # 
Instance details

Defined in Stack.Types.ComponentUtils

type Rep StackUnqualCompName = D1 ('MetaData "StackUnqualCompName" "Stack.Types.ComponentUtils" "stack-2.15.1-BDsvBT8AtC4AOYQNYrK19c" 'True) (C1 ('MetaCons "StackUnqualCompName" 'PrefixI 'True) (S1 ('MetaSel ('Just "unqualCompToText") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data StackBuildInfo Source #

Type representing information needed to build. The file gathering-related fields are lazy because they are not always needed.

The corresponding Cabal-syntax type is BuildInfo.

Constructors

StackBuildInfo 

Fields

Instances

Instances details
Show StackBuildInfo Source # 
Instance details

Defined in Stack.Types.Component

type HasName component = HasField "name" component StackUnqualCompName Source #

Type synonym for a HasField constraint.

type HasBuildInfo component = HasField "buildInfo" component StackBuildInfo Source #

Type synonym for a HasField constraint.

type HasComponentInfo component = (HasName component, HasBuildInfo component, HasQualiName component) Source #

Type synonym for a HasField constraint for all the common component fields i.e. name, buildInfo and qualifiedName.