| Copyright | (c) 2015-2016 Leon P Smith |
|---|---|
| License | BSD3 |
| Maintainer | Leon P Smith <leon@melding-monads.com> |
| Safe Haskell | None |
| Language | Haskell98 |
Data.Configurator.Parser.Internal
Description
- type RMW r w a = r -> (Maybe a, w)
- type ConfigErrors = Maybe (DList ConfigError)
- class Applicative m => ConfigParser m where
- newtype ConfigParserM a = ConfigParserM {}
- newtype ConfigParserA a = ConfigParserA {}
- newtype ConfigTransform = ConfigTransform (ConfigPlan ())
- interpConfigTransform :: ConfigTransform -> Config -> Config
Documentation
type ConfigErrors = Maybe (DList ConfigError) #
class Applicative m => ConfigParser m where #
A ConfigParser computation produces a value of type
from a given Maybe aConfig, in addition to a list of diagnostic messages,
which may be interpreted as warnings or errors as deemed appropriate.
The type class abstracts over ConfigParserM and ConfigParserA
variants, which are isomorphic but have different Applicative and
Monad instances. This is intended to be a closed typeclass, without
any additional instances.
Minimal complete definition
Methods
configParser_ :: RMW Config ConfigErrors a -> m a #
unConfigParser_ :: m a -> RMW Config ConfigErrors a #
Instances
newtype ConfigParserM a #
If the value returned by a computation is Nothing, then no subsequent
actions (e.g. via <*> or >>=) will be performed.
Constructors
| ConfigParserM | |
Fields | |
newtype ConfigParserA a #
After executing a subcomputation that returns a Nothing value,
computations of type ConfigParserA will continue to run in order to
produce more error messages. For this reason, ConfigParserA does
not have a proper Monad instance. (But see unsafeBind)
Constructors
| ConfigParserA | |
Fields | |
Instances
newtype ConfigTransform #
Conceptually, a ConfigTransform is a function Config -> Config.
It's a restricted subset of such functions as to preserve the possibility
of reliable dependency tracking in later versions of configurator-ng.
Constructors
| ConfigTransform (ConfigPlan ()) |
Instances
| Monoid ConfigTransform # |
|
interpConfigTransform :: ConfigTransform -> Config -> Config #