Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
- data Error
- renderError :: Error -> String
- newtype Betsy m a = Betsy ([Flag] -> m (Either Error (a, [Flag])))
- data Flag = Flag FlagName FlagOpts
- data FlagOpts = FlagOpts {}
- data FlagName = FlagName {}
- makeFlag :: Applicative m => NonEmptyString -> FlagOpts -> Betsy m FlagName
- runBetsy :: Functor m => Betsy m a -> m (Either Error (a, [Flag]))
- currentFlags :: Applicative f => Betsy f [Flag]
Documentation
Errors that may result from running a Betsy
computation.
DuplicateFlag FlagName | The user requested creation of a duplicate flag. |
Failed String |
|
EmptyFlagName | The user requested creation of a flag with an empty name. |
renderError :: Error -> String Source
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.
Flags
The name of a flag, paired with its options.
Options for flags, except for the flag's name.
FlagOpts | |
|
:: 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 [Flag] Source
Returns a list of all flags made so far.