h*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ 0.0.1 Safe-Inferred "=M conftrackValues which can be read from a config source must implement this class conftrackoptionally, a function to pretty-print values of this type, used by the functions of Conftrack.Pretty. If not given, defaults to a's [ instance.  conftrackA configuration key is a non-empty list of parts. By convention, these parts are separated by dots when written, although dots withing parts are not disallowed.1For writing values easily, consider enabling the  QuasiQuotes language extension to use :[key|foo.bar|]foo.bar  conftrackA generic value read from a config source, to be parsed into a more useful type (see the  class). conftrackA value which may be an integer, but the source cannot say for sure, e.g. because its values are entirely untyped. Use  to handle such cases. conftrackto write values of   easily       Safe-Inferred & conftrackAn opaque type for any kind of config sources. Values of this type can be acquired from they Conftrack.Source.*" modules, or by implementing the ( type class.( conftrackAn abstraction over "config sources". This might mean file formats, environment variables, or any other kind of format that can be seen as a key-value store.) conftrackSome sources require state, e.g. to keep track of which values were already read.* conftrack$read a single value from the source.+ conftrackgiven s, determine if any keys are "left over" and were not used. This is used to produce warnings for unknown configuration options; since not all sources can support this, this function's return type includes Maybe and sources are free to return Nothing; if they cannot determine if any unknown keys are present.()*+&'()*+&' Safe-Inferred" Q,-.,-. Safe-Inferred "%& 0123401234 Safe-Inferred "%& ; conftrack!Make a source from an aeson value< conftracksame as ;?, but with an additional description to be shown in output of  .= conftrackMake a source from a json file.\ conftrackthis is essentially a FromJSON instance for Value, but not written as one so as to not introduce an orphan;<=789:;<=789: Safe-Inferred " R@ABCD@ABCD experimental Safe-Inferred "#%&I conftrackA value of type Fetch a can be used to read in a value a1, with configuration sources handled implicitly.!Note that this is an instance of ] but not ^. In practical terms this means that values read from the configuration sources cannot be inspected while reading the rest of the config, and in particular which keys are read cannot depend on another key's value. This allows for introspection functions like M.For configuration keys whose presence depends on each other, use R to model similar behaviour.J conftrack%A class to model configurations. See  Conftrack"'s documention for a usage exampleM conftrack3a list of all keys which will be read when running runFetchConfig to produce a value of type a.This runs inside the _& monad, but does not do any actual IO.N conftrack.read an optional config value, resulting in a Just if it is present and a Nothing if it is not.This is distinct from using P to produce a value of type Maybe a: the latter will require the key to be present, but allow it to be null or similarly empty.O conftrackread in a config value, and produce an error if it is not present.P conftrackread in a config value, or give the given default value if it is not present.Q conftrackread a nested set of configuration values, prefixed by a given key. This corresponds to nested objects in json.R conftracksame as Q, but produce Nothing if the nested keys are not present. This can be used for optionally configurable sub-systems or similar constructs.If only some but not all keys of the nested configuration are given, this will produce an error.JKPNOQR&LI  GH MJKPNOQR&LI  GH M Safe-Inferred" V conftrackA convenience function, to be >>='d with  .It prints any errors in case of failure and then aborts the program, and prints any warnings (and, if the first argument is True, also each value's origin) and returns the config in case of success.VWXYZVWXYZ    !"#$%&'()*+,-./0012345567889:;<=>>?@ABCDEFFGHIJKLLMNO PQRSTUVWXY Z[\]^_`]ab]acdefconftrack-0.0.1-inplaceConftrack.ValueConftrack.SourceConftrack.Source.TrivialConftrack.Source.EnvConftrack.Source.AesonConftrack.Source.Yaml ConftrackConftrack.Pretty conftrackprintConfigOriginsrunFetchConfigOrigin ConfigValue fromConfig prettyValue ConfigError ParseError TypeMismatch NotPresentShadowedKeyKeyPartValue ConfigString ConfigIntegerConfigMaybeInteger ConfigOther ConfigBool ConfigNullkey prefixedWith withString $fShowKey$fConfigValueByteString$fConfigValueByteString0$fConfigValueOsString$fConfigValueMaybe$fConfigValueBool$fConfigValueInt$fConfigValueInteger$fConfigValueText $fShowOrigin$fShowConfigError$fEqKey$fOrdKey$fLiftBoxedRepKey $fShowValue SomeSource ConfigSource SourceState fetchValue leftoversTrivialmkTrivialSource$fConfigSourceTrivial EnvSourceenvSourceModifierenvSourceDescription mkEnvSource$fConfigSourceEnvSource$fShowEnvSource JsonSourcejsonSourceValuejsonSourceDescription mkJsonSourcemkJsonSourceWithmkJsonFileSource$fConfigSourceJsonSource$fShowJsonSource YamlSource mkYamlSourcemkYamlSourceWithmkYamlFileSource$fConfigSourceYamlSource$fShowYamlSourceWarningFetchConfig readConfig configKeysOfreadOptionalValuereadRequiredValue readValue readNestedreadNestedOptional$fApplicativeFetch$fFunctorFetch $fShowWarningunwrapConfigResultprintConfigWarningsprintConfigErrors displayErrorbaseGHC.ShowShowparseJsonValueGHC.Base ApplicativeMonadghc-prim GHC.TypesIO