Cabal-2.0.0.0: A framework for packaging Haskell software

CopyrightIsaac Jones 2003-2004
Duncan Coutts 2007
LicenseBSD3
Maintainercabal-devel@haskell.org
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Distribution.Simple.Setup (signature[?])

Description

This is a big module, but not very complicated. The code is very regular and repetitive. It defines the command line interface for all the Cabal commands. For each command (like configure, build etc) it defines a type that holds all the flags, the default set of flags and a CommandUI that maps command line flags to and from the corresponding flags type.

All the flags types are instances of Monoid, see http://www.haskell.org/pipermail/cabal-devel/2007-December/001509.html for an explanation.

The types defined here get used in the front end and especially in cabal-install which has to do quite a bit of manipulating sets of command line flags.

This is actually relatively nice, it works quite well. The main change it needs is to unify it with the code for managing sets of fields that can be read and written from files. This would allow us to save configure flags in config files.

Synopsis

Documentation

data GlobalFlags Source #

Flags that apply at the top level, not to any sub-command.

data ConfigFlags Source #

Flags to configure command.

IMPORTANT: every time a new flag is added, filterConfigureFlags should be updated. IMPORTANT: every time a new flag is added, it should be added to the Eq instance

Constructors

ConfigFlags 

Fields

Instances

Eq ConfigFlags # 
Read ConfigFlags # 
Show ConfigFlags # 
Generic ConfigFlags # 

Associated Types

type Rep ConfigFlags :: * -> * Source #

Semigroup ConfigFlags # 
Monoid ConfigFlags # 
Binary ConfigFlags # 
type Rep ConfigFlags # 
type Rep ConfigFlags = D1 * (MetaData "ConfigFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.0" False) (C1 * (MetaCons "ConfigFlags" PrefixI True) ((:*:) * ((:*:) * ((:*:) * ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [String])) ((:*:) * (S1 * (MetaSel (Just Symbol "configPrograms_") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Last' ProgramDb))) (S1 * (MetaSel (Just Symbol "configProgramPaths") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(String, FilePath)])))) ((:*:) * (S1 * (MetaSel (Just Symbol "configProgramArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(String, [String])])) ((:*:) * (S1 * (MetaSel (Just Symbol "configProgramPathExtra") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (NubList FilePath))) (S1 * (MetaSel (Just Symbol "configHcFlavor") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag CompilerFlavor)))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configHcPath") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag FilePath))) ((:*:) * (S1 * (MetaSel (Just Symbol "configHcPkg") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag FilePath))) (S1 * (MetaSel (Just Symbol "configVanillaLib") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))))) ((:*:) * (S1 * (MetaSel (Just Symbol "configProfLib") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) ((:*:) * (S1 * (MetaSel (Just Symbol "configSharedLib") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "configDynExe") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))))))) ((:*:) * ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configProfExe") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) ((:*:) * (S1 * (MetaSel (Just Symbol "configProf") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "configProfDetail") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag ProfDetailLevel))))) ((:*:) * (S1 * (MetaSel (Just Symbol "configProfLibDetail") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag ProfDetailLevel))) ((:*:) * (S1 * (MetaSel (Just Symbol "configConfigureArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [String])) (S1 * (MetaSel (Just Symbol "configOptimization") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag OptimisationLevel)))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configProgPrefix") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag PathTemplate))) ((:*:) * (S1 * (MetaSel (Just Symbol "configProgSuffix") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag PathTemplate))) (S1 * (MetaSel (Just Symbol "configInstallDirs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (InstallDirs (Flag PathTemplate)))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configScratchDir") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag FilePath))) (S1 * (MetaSel (Just Symbol "configExtraLibDirs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [FilePath]))) ((:*:) * (S1 * (MetaSel (Just Symbol "configExtraFrameworkDirs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [FilePath])) (S1 * (MetaSel (Just Symbol "configExtraIncludeDirs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [FilePath]))))))) ((:*:) * ((:*:) * ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configIPID") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag String))) ((:*:) * (S1 * (MetaSel (Just Symbol "configCID") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag ComponentId))) (S1 * (MetaSel (Just Symbol "configDeterministic") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))))) ((:*:) * (S1 * (MetaSel (Just Symbol "configDistPref") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag FilePath))) ((:*:) * (S1 * (MetaSel (Just Symbol "configCabalFilePath") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag FilePath))) (S1 * (MetaSel (Just Symbol "configVerbosity") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Verbosity)))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configUserInstall") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) ((:*:) * (S1 * (MetaSel (Just Symbol "configPackageDBs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Maybe PackageDB])) (S1 * (MetaSel (Just Symbol "configGHCiLib") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configSplitObjs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "configStripExes") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool)))) ((:*:) * (S1 * (MetaSel (Just Symbol "configStripLibs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "configConstraints") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [Dependency])))))) ((:*:) * ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configDependencies") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(PackageName, ComponentId)])) ((:*:) * (S1 * (MetaSel (Just Symbol "configInstantiateWith") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(ModuleName, Module)])) (S1 * (MetaSel (Just Symbol "configConfigurationsFlags") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * FlagAssignment)))) ((:*:) * (S1 * (MetaSel (Just Symbol "configTests") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) ((:*:) * (S1 * (MetaSel (Just Symbol "configBenchmarks") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "configCoverage") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool)))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configLibCoverage") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) ((:*:) * (S1 * (MetaSel (Just Symbol "configExactConfiguration") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "configFlagError") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag String))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "configRelocatable") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "configDebugInfo") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag DebugInfoLevel)))) ((:*:) * (S1 * (MetaSel (Just Symbol "configAllowOlder") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe AllowOlder))) (S1 * (MetaSel (Just Symbol "configAllowNewer") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe AllowNewer))))))))))

configPrograms :: ConfigFlags -> ProgramDb Source #

More convenient version of configPrograms. Results in an error if internal invariant is violated.

data RelaxDeps Source #

Generic data type for policy when relaxing bounds in dependencies. Don't use this directly: use AllowOlder or AllowNewer depending on whether or not you are relaxing an lower or upper bound (respectively).

Constructors

RelaxDepsNone

Default: honor the upper bounds in all dependencies, never choose versions newer than allowed.

RelaxDepsSome [RelaxedDep]

Ignore upper bounds in dependencies on the given packages.

RelaxDepsAll

Ignore upper bounds in dependencies on all packages.

Instances

data RelaxedDep Source #

Dependencies can be relaxed either for all packages in the install plan, or only for some packages.

isRelaxDeps :: RelaxDeps -> Bool Source #

Convert RelaxDeps to a boolean.

newtype AllowNewer Source #

RelaxDeps in the context of upper bounds (i.e. for --allow-newer flag)

Constructors

AllowNewer 

newtype AllowOlder Source #

RelaxDeps in the context of lower bounds (i.e. for --allow-older flag)

Constructors

AllowOlder 

data CopyFlags Source #

Flags to copy: (destdir, copy-prefix (backwards compat), verbosity)

data InstallFlags Source #

Flags to install: (package db, verbosity)

Instances

Show InstallFlags # 
Generic InstallFlags # 

Associated Types

type Rep InstallFlags :: * -> * Source #

Semigroup InstallFlags # 
Monoid InstallFlags # 
type Rep InstallFlags # 

data HaddockTarget Source #

When we build haddock documentation, there are two cases:

  1. We build haddocks only for the current development version, intended for local use and not for distribution. In this case, we store the generated documentation in distdochtml/name.
  2. We build haddocks for intended for uploading them to hackage. In this case, we need to follow the layout that hackage expects from documentation tarballs, and we might also want to use different flags than for development builds, so in this case we store the generated documentation in distdochtml/id-docs.

Constructors

ForHackage 
ForDevelopment 

Instances

Eq HaddockTarget # 
Show HaddockTarget # 
Generic HaddockTarget # 
type Rep HaddockTarget # 
type Rep HaddockTarget = D1 * (MetaData "HaddockTarget" "Distribution.Simple.Setup" "Cabal-2.0.0.0" False) ((:+:) * (C1 * (MetaCons "ForHackage" PrefixI False) (U1 *)) (C1 * (MetaCons "ForDevelopment" PrefixI False) (U1 *)))

data HaddockFlags Source #

Instances

Show HaddockFlags # 
Generic HaddockFlags # 

Associated Types

type Rep HaddockFlags :: * -> * Source #

Semigroup HaddockFlags # 
Monoid HaddockFlags # 
type Rep HaddockFlags # 
type Rep HaddockFlags = D1 * (MetaData "HaddockFlags" "Distribution.Simple.Setup" "Cabal-2.0.0.0" False) (C1 * (MetaCons "HaddockFlags" PrefixI True) ((:*:) * ((:*:) * ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "haddockProgramPaths") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(String, FilePath)])) (S1 * (MetaSel (Just Symbol "haddockProgramArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * [(String, [String])]))) ((:*:) * (S1 * (MetaSel (Just Symbol "haddockHoogle") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "haddockHtml") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "haddockHtmlLocation") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag String))) (S1 * (MetaSel (Just Symbol "haddockForHackage") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag HaddockTarget)))) ((:*:) * (S1 * (MetaSel (Just Symbol "haddockExecutables") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) ((:*:) * (S1 * (MetaSel (Just Symbol "haddockTestSuites") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "haddockBenchmarks") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))))))) ((:*:) * ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "haddockForeignLibs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "haddockInternal") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool)))) ((:*:) * (S1 * (MetaSel (Just Symbol "haddockCss") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag FilePath))) (S1 * (MetaSel (Just Symbol "haddockHscolour") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))))) ((:*:) * ((:*:) * (S1 * (MetaSel (Just Symbol "haddockHscolourCss") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag FilePath))) (S1 * (MetaSel (Just Symbol "haddockContents") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag PathTemplate)))) ((:*:) * (S1 * (MetaSel (Just Symbol "haddockDistPref") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag FilePath))) ((:*:) * (S1 * (MetaSel (Just Symbol "haddockKeepTempFiles") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Bool))) (S1 * (MetaSel (Just Symbol "haddockVerbosity") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Flag Verbosity)))))))))

data HscolourFlags Source #

Instances

Show HscolourFlags # 
Generic HscolourFlags # 
Semigroup HscolourFlags # 
Monoid HscolourFlags # 
type Rep HscolourFlags # 

data BuildFlags Source #

Instances

Read BuildFlags # 
Show BuildFlags # 
Generic BuildFlags # 

Associated Types

type Rep BuildFlags :: * -> * Source #

Semigroup BuildFlags # 
Monoid BuildFlags # 
type Rep BuildFlags # 

buildVerbose :: BuildFlags -> Verbosity Source #

Deprecated: Use buildVerbosity instead

data ReplFlags Source #

Instances

Show ReplFlags # 
Generic ReplFlags # 

Associated Types

type Rep ReplFlags :: * -> * Source #

Semigroup ReplFlags # 
Monoid ReplFlags # 
type Rep ReplFlags # 

data RegisterFlags Source #

Flags to register and unregister: (user package, gen-script, in-place, verbosity)

Instances

Show RegisterFlags # 
Generic RegisterFlags # 
Semigroup RegisterFlags # 
Monoid RegisterFlags # 
type Rep RegisterFlags # 

data SDistFlags Source #

Flags to sdist: (snapshot, verbosity)

Instances

Show SDistFlags # 
Generic SDistFlags # 

Associated Types

type Rep SDistFlags :: * -> * Source #

Semigroup SDistFlags # 
Monoid SDistFlags # 
type Rep SDistFlags # 

data TestFlags Source #

Instances

Generic TestFlags # 

Associated Types

type Rep TestFlags :: * -> * Source #

Semigroup TestFlags # 
Monoid TestFlags # 
type Rep TestFlags # 

data TestShowDetails Source #

Instances

Bounded TestShowDetails # 
Enum TestShowDetails # 
Eq TestShowDetails # 
Ord TestShowDetails # 
Show TestShowDetails # 
Semigroup TestShowDetails # 
Monoid TestShowDetails # 
Text TestShowDetails # 

data CopyDest Source #

The location prefix for the copy command.

Constructors

NoCopyDest 
CopyTo FilePath 

configureArgs :: Bool -> ConfigFlags -> [String] Source #

Arguments to pass to a configure script, e.g. generated by autoconf.

programDbOptions :: ProgramDb -> ShowOrParseArgs -> (flags -> [(String, [String])]) -> ([(String, [String])] -> flags -> flags) -> [OptionField flags] Source #

For each known program PROG in progDb, produce a PROG-options OptionField.

programDbPaths' :: (String -> String) -> ProgramDb -> ShowOrParseArgs -> (flags -> [(String, FilePath)]) -> ([(String, FilePath)] -> flags -> flags) -> [OptionField flags] Source #

Like programDbPaths, but allows to customise the option name.

programConfigurationOptions :: ProgramDb -> ShowOrParseArgs -> (flags -> [(String, [String])]) -> ([(String, [String])] -> flags -> flags) -> [OptionField flags] Source #

Deprecated: Use programDbOptions instead

For each known program PROG in progDb, produce a PROG-options OptionField.

programConfigurationPaths' :: (String -> String) -> ProgramDb -> ShowOrParseArgs -> (flags -> [(String, FilePath)]) -> ([(String, FilePath)] -> flags -> flags) -> [OptionField flags] Source #

Deprecated: Use programDbPaths' instead

Like programDbPaths, but allows to customise the option name.

splitArgs :: String -> [String] Source #

Helper function to split a string into a list of arguments. It's supposed to handle quoted things sensibly, eg:

splitArgs "--foo=\"C:\Program Files\Bar\" --baz"
  = ["--foo=C:\Program Files\Bar", "--baz"]

optionDistPref :: (flags -> Flag FilePath) -> (Flag FilePath -> flags -> flags) -> ShowOrParseArgs -> OptionField flags Source #

data Flag a Source #

All flags are monoids, they come in two flavours:

  1. list flags eg
--ghc-option=foo --ghc-option=bar

gives us all the values ["foo", "bar"]

  1. singular value flags, eg:
--enable-foo --disable-foo

gives us Just False So this Flag type is for the latter singular kind of flag. Its monoid instance gives us the behaviour where it starts out as NoFlag and later flags override earlier ones.

Constructors

Flag a 
NoFlag 

Instances

Functor Flag # 

Methods

fmap :: (a -> b) -> Flag a -> Flag b Source #

(<$) :: a -> Flag b -> Flag a Source #

Bounded a => Bounded (Flag a) # 
Enum a => Enum (Flag a) # 

Methods

succ :: Flag a -> Flag a Source #

pred :: Flag a -> Flag a Source #

toEnum :: Int -> Flag a Source #

fromEnum :: Flag a -> Int Source #

enumFrom :: Flag a -> [Flag a] Source #

enumFromThen :: Flag a -> Flag a -> [Flag a] Source #

enumFromTo :: Flag a -> Flag a -> [Flag a] Source #

enumFromThenTo :: Flag a -> Flag a -> Flag a -> [Flag a] Source #

Eq a => Eq (Flag a) # 

Methods

(==) :: Flag a -> Flag a -> Bool #

(/=) :: Flag a -> Flag a -> Bool #

Read a => Read (Flag a) # 
Show a => Show (Flag a) # 

Methods

showsPrec :: Int -> Flag a -> ShowS Source #

show :: Flag a -> String Source #

showList :: [Flag a] -> ShowS Source #

Generic (Flag a) # 

Associated Types

type Rep (Flag a) :: * -> * Source #

Methods

from :: Flag a -> Rep (Flag a) x Source #

to :: Rep (Flag a) x -> Flag a Source #

Semigroup (Flag a) # 

Methods

(<>) :: Flag a -> Flag a -> Flag a Source #

sconcat :: NonEmpty (Flag a) -> Flag a Source #

stimes :: Integral b => b -> Flag a -> Flag a Source #

Monoid (Flag a) # 

Methods

mempty :: Flag a Source #

mappend :: Flag a -> Flag a -> Flag a Source #

mconcat :: [Flag a] -> Flag a Source #

Binary a => Binary (Flag a) # 

Methods

put :: Flag a -> Put Source #

get :: Get (Flag a) Source #

putList :: [Flag a] -> Put Source #

type Rep (Flag a) # 
type Rep (Flag a) = D1 * (MetaData "Flag" "Distribution.Simple.Setup" "Cabal-2.0.0.0" False) ((:+:) * (C1 * (MetaCons "Flag" PrefixI False) (S1 * (MetaSel (Nothing Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * a))) (C1 * (MetaCons "NoFlag" PrefixI False) (U1 *)))

toFlag :: a -> Flag a Source #

fromFlag :: Flag a -> a Source #

flagToList :: Flag a -> [a] Source #

class BooleanFlag a where Source #

Types that represent boolean flags.

Minimal complete definition

asBool

Methods

asBool :: a -> Bool Source #

Instances

boolOpt :: SFlags -> SFlags -> MkOptDescr (a -> Flag Bool) (Flag Bool -> a -> a) a Source #

boolOpt' :: OptFlags -> OptFlags -> MkOptDescr (a -> Flag Bool) (Flag Bool -> a -> a) a Source #

trueArg :: MkOptDescr (a -> Flag Bool) (Flag Bool -> a -> a) a Source #

falseArg :: MkOptDescr (a -> Flag Bool) (Flag Bool -> a -> a) a Source #

optionVerbosity :: (flags -> Flag Verbosity) -> (Flag Verbosity -> flags -> flags) -> OptionField flags Source #

optionNumJobs :: (flags -> Flag (Maybe Int)) -> (Flag (Maybe Int) -> flags -> flags) -> OptionField flags Source #