Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Cartel.Betsy
Description
Public interface for Betsy
, the Cartel flag maker. Simply
re-exports safe bindings from Cartel.Betsy.Internal.
- data FlagName
- flagNameHead :: FlagName -> Char
- flagNameTail :: FlagName -> String
- data FlagOpts = FlagOpts {}
- data Betsy m a
- data Error
- runBetsy :: Functor m => Betsy m a -> m (Either Error (a, [(FlagName, FlagOpts)]))
- makeFlag :: Applicative m => NonEmptyString -> FlagOpts -> Betsy m FlagName
- currentFlags :: Applicative f => Betsy f [(FlagName, FlagOpts)]
Documentation
The name of a flag. Only makeFlag
creates flags; it will
return a FlagName
to you. You can then use that FlagName
in a
conditional using flag
.
Instances
flagNameHead :: FlagName -> Char Source
flagNameTail :: FlagName -> String Source
Options for flags, except for the flag's name.
Constructors
FlagOpts | |
Fields
|
Computations that can create and use Cabal flags. Use of this
type, along with the defaultMain
function ensures that any
FlagName
you use has been properly set up by using makeFlag
.
That way, you don't use flags in a flag
without actually
declaring the flag. When defaultMain
creates your Cabal
file, it will print the necessary Flag
sections.
Betsy
is parameterized on a type, m
. When this type is a
monad, Betsy
is also a monad, allowing you to use use the usual
monad combinators and do
notation. Betsy
is also a monad transformer.
Errors that may result from running a Betsy
computation.
Constructors
DuplicateFlag FlagName | The user requested creation of a duplicate flag. |
Failed String |
|
EmptyFlagName | The user requested creation of a flag with an empty name. |
Arguments
:: Applicative m | |
=> NonEmptyString | Name of flag |
-> FlagOpts | Options for the flag |
-> Betsy m FlagName | This operation will fail if there is already a flag with the name you gave. |
Creates new flags.
currentFlags :: Applicative f => Betsy f [(FlagName, FlagOpts)] Source
Returns a list of all flags made so far.