h&0%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                               5Internal utilities of the configuration-tools package&Copyright  2014-2015 PivotCloud, Inc.MIT!Lars Kuhtz  experimental Safe-Inferred" configuration-toolsThis is the same type as the type from the lens library with the same name.In case it is already import from the lens package this should be hidden from the import.configuration-toolsThis is the same type as the type from the lens library with the same name.In case it is already import from the lens package this should be hidden from the import.configuration-toolsThis is the same type as the type from the lens library with the same name.In case it is already import from the lens package this should be hidden from the import./Copyright  2020 Lars Kuhtz MITLars Kuhtz  experimental Safe-Inferred ";=?6 configuration-tools(Represent differences between two valuesconfiguration-toolsResolve differences between two JSON values using the provided conflict resolution function.configuration-toolsMerge all non-conflicting differences. Leave the conflict annotations in the result.configuration-toolsMerge all differences. Pick the left value in case of a conflict.configuration-toolsMerge all differences. Pick the right value in case of a conflict.configuration-tools3Resolve all differences by choosing the left value.configuration-toolsKeep values that only occure in the left value. Remove all values that occur in the right value or in both.3The result is the left value minus the right value.configuration-tools4Resolve all differences by choosing the right value.configuration-toolsKeep values that only occure in the right value. Remove all values that occur in the left value or in both.3The result is the right value minus the left value.configuration-toolsMerge two JSON values and annotate the result with the differences.configuration-tools(A naive list merge with a lookAhead of 1 Configuration of Optional Values!Copyright  2015 PivotCloud, Inc.MIT!Lars Kuhtz  experimental Safe-Inferredaconfiguration-toolsCommand line parser for record  valuesExample:  data Setting = Setting { _setA D !Int , _setB D !String } deriving (Show, Read, Eq, Ord, Typeable) $(makeLenses ''Setting) defaultSetting D Setting defaultSetting = Setting { _setA = 0 , _setB = 1 } instance ToJSON Setting where toJSON setting = object [ "a" .= _setA setting , "b" .= _setB setting ] instance FromJSON (Setting C Setting) where parseJSON = withObject "Setting" $ \o C id <$< setA ..: "a" % o <*< setB ..: "b" % o instance FromJSON Setting where parseJSON v = parseJSON v <*> pure defaultSetting pSetting D MParser Setting pSetting = id <$< setA .:: option auto % short 'a' <> metavar "INT" <> help "set a" <*< setB .:: option auto % short 'b' <> metavar "INT" <> help "set b" -- | Use 'Setting' as 'Maybe' in a configuration: -- data Config = Config { _maybeSetting D !(Maybe Setting) } deriving (Show, Read, Eq, Ord, Typeable) $(makeLenses ''Config) defaultConfig D Config defaultConfig = Config { _maybeSetting = defaultSetting } instance ToJSON Config where toJSON config = object [ "setting" .= maybeSetting ] instance FromJSON (Config C Config) where parseJSON = withObject "Config" $ \o C id <$< maybeSetting %.: "setting" % o pConfig D MParser Config pConfig = id <$< maybeSetting %:: (maybeOption defaultSetting <$> pEnableSetting <*> pSetting) where pEnableSetting = boolOption % long "setting-enable" <> value False <> help "Enable configuration flags for setting"configuration-tools4default value that is used if base configuration is configuration-toolswhether to enable this parser or not (usually is a boolean option parser)configuration-tools:update function (usually given as applicative 'MParser a')configuration-toolsthe base value that is updated (usually the result of parsing the configuration file)Useful operators for defining functions in an applicative context!Copyright  2015 PivotCloud, Inc.MIT!Lars Kuhtz  experimental Safe-Inferredkconfiguration-tools$This operator is an alternative for  with a higher precedence. It is suitable for usage within applicative style code without the need to add parenthesis.configuration-tools$This operator is a UTF-8 version of  which is an alternative for  with a higher precedence. It is suitable for usage within applicative style code without the need to add parenthesis.1The hex value of the UTF-8 character  is 0x00d7. In VIM type:  Ctrl-V u 00d7You may also define a key binding by adding something like the following line to your vim configuration file: iabbrev >< configuration-tools0Functional composition for applicative functors.configuration-toolsFunctional composition for applicative functors with its arguments flipped.configuration-toolsApplicative functional composition between a pure function and an applicative function.configuration-toolsApplicative functional composition between a pure function and an applicative function with its arguments flipped.554444/Command Line Option Parsing with Default Values!Copyright  2015 PivotCloud, Inc.MIT!Lars Kuhtz  experimental Safe-Inferred"+ configuration-tools:Type of option parsers that yield a modification function.configuration-toolsAn operator for applying a setter to an option parser that yields a value.Example usage: data Auth = Auth { _user D !String , _pwd D !String } user D Functor f C (String C f String) C Auth C f Auth user f s = (\u C s { _user = u }) <$> f (_user s) pwd D Functor f C (String C f String) C Auth C f Auth pwd f s = (\p C s { _pwd = p }) <$> f (_pwd s) -- or with lenses and TemplateHaskell just: -- $(makeLenses ''Auth) pAuth D MParser Auth pAuth = id <$< user .:: strOption % long "user" E short 'u' E help "user name" <*< pwd .:: strOption % long "pwd" E help "password for user"configuration-toolsAn operator for applying a setter to an option parser that yields a modification function.Example usage: data HttpURL = HttpURL { _auth D !Auth , _domain D !String } auth D Functor f C (Auth C f Auth) C HttpURL C f HttpURL auth f s = (\u C s { _auth = u }) <$> f (_auth s) domain D Functor f C (String C f String) C HttpURL C f HttpURL domain f s = (\u C s { _domain = u }) <$> f (_domain s) path D Functor f C (String C f String) C HttpURL C f HttpURL path f s = (\u C s { _path = u }) <$> f (_path s) -- or with lenses and TemplateHaskell just: -- $(makeLenses ''HttpURL) pHttpURL D MParser HttpURL pHttpURL = id <$< auth %:: pAuth <*< domain .:: strOption % long "domain" E short 'd' E help "HTTP domain"configuration-toolsThe  is an alternative to H.Using H with command line parsers that overwrite settings from a configuration file is problematic: the absence of the H is interpreted as setting the respective configuration value to . So there is no way to specify on the command line that the value from the configuration file shall be used. Some command line UIs use two different options for those values, for instance --enable-feature and --disable-feature. This option instead expects a Boolean value. Beside that it behaves like any other option.configuration-toolsAn alternative syntax for  for options with long names.Instead of taking a boolean argument the presence of the option acts as a switch to set the respective configuration setting to >. If the option is not present the setting is left unchanged./In addition for long option names a respective  unset flag' is provided. For instance for a flag  --verbose there will also be a flag  --no-verbose.?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu}vwxyz|{~     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu}vwxyz|{~55Configuration of Monoids!Copyright  2015 PivotCloud, Inc.MIT!Lars Kuhtz  experimental Safe-Inferred7 configuration-toolsUpdate a value by appending on the right. Under normal circumstances you'll never use this type directly but only its  instance. See the  for an example.configuration-toolsUpdate a value by appending on the left. Under normal circumstances you'll never use this type directly but only its  instance. See the  for an example.configuration-tools(Update a value by appending on the left. newtype RoutingTable = RoutingTable { _routingTableMap D HashMap T.Text T.Text } $(makeLenses ''RoutingTable) instance FromJSON (RoutingTable C RoutingTable) where parseJSON = withObject "RoutingTable" $ \o C id <$< routingTableMap . from leftMonoidalUpdate %.: "route_map" % oconfiguration-toolsThis is the same as from leftMonoidalUpdate) but doesn't depend on the lens Library.configuration-tools(Update a value by appending on the left. newtype RoutingTable = RoutingTable { _routingTableMap D HashMap T.Text T.Text } $(makeLenses ''RoutingTable) pRoutingTable D MParser RoutingTable pRoutingTable = routingTableMap %:: pLeftMonoidalUpdate pRoute where pRoute = option (eitherReader readRoute) % long "route" <> help "add a route to the routing table; the APIROUTE part must not contain a colon character" <> metavar "APIROUTE:APIURL" readRoute s = case break (== ':') s of (a,':':b) C first T.unpack $ do validateNonEmpty "APIROUTE" a validateHttpOrHttpsUrl "APIURL" b return $ HM.singleton (T.pack a) (T.pack b) _ C Left "missing colon between APIROUTE and APIURL" first f = either (Left . f) Rightconfiguration-toolsLike , but works for s instead. Using this parser requires the input to have at least one copy (say, for flags that can be passed multiple times).configuration-tools.Update a value by appending on the right. See  for an usage example.configuration-toolsThis is the same as from rightMonoidalUpdate) but doesn't depend on the lens Library.configuration-tools.Update a value by appending on the right. See  for an usage example.configuration-toolsLike , but works for s instead. Using this parser requires the input to have at least one copy (say, for flags that can be passed multiple times).  2Parsing of Configuration Files with Default Values!Copyright  2015 PivotCloud, Inc.MIT!Lars Kuhtz  experimental Safe-Inferred"6Hconfiguration-toolsAn internal type for the meta configuration that specifies how the configuration files are loaded and parsed.configuration-toolsA JSON # parser for a property of a given - that updates a setter with the parsed value. data Auth = Auth { _userId D !Int , _pwd D !String } userId D Functor f C (Int C f Int) C Auth C f Auth userId f s = (\u C s { _userId = u }) <$> f (_userId s) pwd D Functor f C (String C f String) C Auth C f Auth pwd f s = (\p C s { _pwd = p }) <$> f (_pwd s) -- or with lenses and TemplateHaskell just: -- $(makeLenses ''Auth) instance FromJSON (Auth C Auth) where parseJSON = withObject "Auth" $ \o C id <$< setProperty user "user" p o <*< setProperty pwd "pwd" parseJSON o where p = withText "user" $ \case "alice" C pure (0 D Int) "bob" C pure 1 e C fail $ "unrecognized user " E econfiguration-toolsA variant of the  that uses the default  method from the  instance to parse the value of the property. Its usage pattern mimics the usage pattern of the ! operator from the aeson library. data Auth = Auth { _user D !String , _pwd D !String } user D Functor f C (String C f String) C Auth C f Auth user f s = (\u C s { _user = u }) <$> f (_user s) pwd D Functor f C (String C f String) C Auth C f Auth pwd f s = (\p C s { _pwd = p }) <$> f (_pwd s) -- or with lenses and TemplateHaskell just: -- $(makeLenses ''Auth) instance FromJSON (Auth C Auth) where parseJSON = withObject "Auth" $ \o C id <$< user ..: "user" % o <*< pwd ..: "pwd" % oconfiguration-toolsA JSON parser for a function that modifies a property of a given 0 and updates a setter with the parsed function.This function is useful when a # instance isn't available. When a  instance exists, the ( provides a more ideomatic alternative. data HttpURL = HttpURL { _auth D !Auth , _domain D !String } auth D Functor f C (Auth C f Auth) C HttpURL C f HttpURL auth f s = (\u C s { _auth = u }) <$> f (_auth s) domain D Functor f C (String C f String) C HttpURL C f HttpURL domain f s = (\u C s { _domain = u }) <$> f (_domain s) path D Functor f C (String C f String) C HttpURL C f HttpURL path f s = (\u C s { _path = u }) <$> f (_path s) -- or with lenses and TemplateHaskell just: -- $(makeLenses ''HttpURL) instance FromJSON (HttpURL C HttpURL) where parseJSON = withObject "HttpURL" $ \o C id <$< updateProperty auth "auth" parseJSON o <*< setProperty domain "domain" parseJSON oconfiguration-tools A variant of  that uses the  instance for the update function. It mimics the aeson operator . It creates a parser that modifies a setter with a parsed function. data HttpURL = HttpURL { _auth D !Auth , _domain D !String } auth D Functor f C (Auth C f Auth) C HttpURL C f HttpURL auth f s = (\u C s { _auth = u }) <$> f (_auth s) domain D Functor f C (String C f String) C HttpURL C f HttpURL domain f s = (\u C s { _domain = u }) <$> f (_domain s) path D Functor f C (String C f String) C HttpURL C f HttpURL path f s = (\u C s { _path = u }) <$> f (_path s) -- or with lenses and TemplateHaskell just: -- $(makeLenses ''HttpURL) instance FromJSON (HttpURL C HttpURL) where parseJSON = withObject "HttpURL" $ \o C id <$< auth %.: "auth" % o <*< domain ..: "domain" % oconfiguration-toolsThis operator requires that a value is explicitly provided in a configuration file, thus preventing the default value from being used. Otherwise this operator does the same as .configuration-tools4a lens into the target that is updated by the parserconfiguration-toolsthe JSON property nameconfiguration-tools the JSON 7 parser that is used to parse the value of the propertyconfiguration-toolsthe parsed JSON  66 Safe-Inferred"Lconfiguration-toolsInclude this function when your setup doesn't contain any extra functionality.configuration-toolsModifies the given record of hooks by adding functionality that creates a package info module for each component of the cabal package.4This function is intended for usage in more complex Setup.hs scripts. If your setup doesn't contain any other function you can just import the  function from this module.The modules are created in the autogen# build directories where also the Path_3 modules are created by cabal's simple build setup. )Copyright  2014 AlephCloud Systems, Inc.MIT Lars Kuhtz  experimental Safe-Inferred"_5 configuration-tools'A validation function. The type in the  is excpected to be a # structure for collecting warnings.configuration-tools.Validates that a value is an HTTP or HTTPS URLconfiguration-tools%Validates that a value is an HTTP URLconfiguration-tools&Validates that a value is an HTTPS URLconfiguration-tools>Validates that a value is an URI without a fragment identifierconfiguration-toolsValidates that a value is an absolute URI without a fragment identifierconfiguration-toolsValidates that a value is an absolute URI with an optional fragment identifierconfiguration-toolsValidates if the given executable name can be found in the system and can be executed.configuration-tools(Validate that the input is a config file"configuration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools#exact length of the validated valueconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools%maximum length of the validated valueconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools%minimum length of the validated valueconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools%minimum length of the validated valueconfiguration-tools%maximum length of the validated valueconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-toolsexpected valueconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools0a strict upper bound for the configuration valueconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools)a upper bound for the configuration valueconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools0a strict lower bound for the configuration valueconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools)a lower bound for the configuration valueconfiguration-tools=configuration property name that is used in the error messageconfiguration-tools+the valid range for the configuration value## .Internal Tools for Parsing Configuration Files!Copyright  2015 PivotCloud, Inc.MIT!Lars Kuhtz  experimental Safe-Inferred "/6;a9configuration-toolsdefault configuration valueconfiguration-tools list of configuration file pathsconfiguration-tools file pathconfiguration-tools file path "Utilities for Configuring Programs&Copyright  2014-2015 PivotCloud, Inc.MIT!Lars Kuhtz  experimental Safe-Inferred "%&configuration-tools3Information about the cabal package. The format is: (info message, detailed info message, version string, license text)See the documentation of Configuration.Utils.Setup for a way how to generate this information automatically from the package description during the build process.configuration-toolsAn internal data type that is used during configuration parsing to represent the overall application configuration which includes the user configuration, which is actual configuration value that is given to the application andthe meta configuration, which are all settings that determine how the actual user$ configuration is loaded and parsed. NOTE that meta configuration settings can only be provided via command line options but not through configuration files.configuration-toolsProgram Descriptionconfiguration-tools Help headerconfiguration-tools Help footerconfiguration-tools options parser for configurationconfiguration-toolsdefault configurationconfiguration-toolsa validation function. The  result is interpreted as a  structure of warnings.configuration-toolsa list of configuration files that are loaded in order before any command line argument is evaluated.configuration-toolsA newtype wrapper around a validation function. The only purpose of this type is to avoid ImpredicativeTypes# when storing the function in the  record.configuration-toolsProgram Descriptionconfiguration-tools Help headerconfiguration-tools Help footerconfiguration-tools Options parser for configurationconfiguration-toolsDefault configurationconfiguration-toolsValidation FunctionThe  result is interpreted as a  structure of warnings.configuration-toolsConfiguration files that are loaded in order before any command line argument is evaluated.configuration-tools& for simultaneous query and update of  and &. This supports to change the type of  with  and .configuration-toolsSmart constructor for . and  are set to . The function  is set to const (return [])configuration-toolsSmart constructor for . and  are set to .configuration-toolsA list of configuration file locations. Configuration file locations are set either statically in the code or are provided dynamically on the command line via  --config-file options.configuration-toolsThe user configuration. During parsing this is represented as an update function that yields a configuration value when applied to a default value.configuration-toolsThis function parsers all command line options: ? options that determine how configuration files are loaded. ConfigFiles options are all  --config-file options.Other meta options, such as --print-config and --printconfig-as.Options for the actual user  configuration. The user configuration is represented as an update function that yields a configuration value when applied to an default value.configuration-toolsRun an IO action with a configuration that is obtained by updating the given default configuration the values defined via command line arguments.In addition to the options defined by the given options parser the following options are recognized:  --config-fileParse the given file path as a (partial) configuration in YAML or JSON format.--print-config>Print the final parsed configuration to standard out and exit.%--print-config-as (full|minimal|diff)Configures the application and prints the configuration in YAML format to standard out and exits. The printed configuration is exactly the configuration that otherwise would be used to run the application. Arguments:full,: print the complete configuration. Same as --print-config.minimal: print a minimal configuration that contains only those settings that are different from the default setting.diff: print a YAML document that shows the difference between the default configuration and the actual configuration.--help, -h, -?Print a help message and exit.If the package is build with -f+remote-configs the following two options are available. They affect how configuration files are loaded from remote URLs. "--config-https-insecure=true|falseBypass certificate validation for all HTTPS connections to all services.3--config-https-allow-cert=HOSTNAME:PORT:FINGERPRINTUnconditionally trust the certificate for connecting to the service.configuration-toolsRun an IO action with a configuration that is obtained by updating the given default configuration the values defined via command line arguments.In addition to the options defined by the given options parser the following options are recognized: --config-file, -cParse the given file path as a (partial) configuration in YAML or JSON format.--print-config, -p>Print the final parsed configuration to standard out and exit.%--print-config-as (full|minimal|diff)Configures the application and prints the configuration in YAML format to standard out and exits. The printed configuration is exactly the configuration that otherwise would be used to run the application. Arguments:full,: print the complete configuration. Same as --print-config.minimal: print a minimal configuration that contains only those settings that are different from the default setting.diff: print a YAML document that shows the difference between the default configuration and the actual configuration.--help, -h, -?Print a help message and exit. --version, -v.Print the version of the application and exit. --info, -i8Print a short info message for the application and exit. --long-info;Print a detailed info message for the application and exit. --license:Print the text of the license of the application and exit.If the package is build with -f+remote-configs the following two options are available. They affect how configuration files are loaded from remote URLs. "--config-https-insecure=true|falseBypass certificate validation for all HTTPS connections to all services.3--config-https-allow-cert=HOSTNAME:PORT:FINGERPRINTUnconditionally trust the certificate for connecting to the service.configuration-toolsInternal main functionconfiguration-tools!Parse the command line arguments.Any warnings from the configuration function are discarded. The options --print-config and --help are just ignored.configuration-toolsValidates a configuration value. Throws an user error if there is an error. If there are warnings they are printed to .configuration-toolsprogram descriptionconfiguration-tools-parser for updating the default configurationconfiguration-toolsdefault configurationconfiguration-toolsprogram info value; use # to construct a value of this typeconfiguration-toolscomputation that is given the configuration that is parsed from the command line.configuration-toolsprogram info value; use # to construct a value of this typeconfiguration-toolscomputation that is given the configuration that is parsed from the command line.configuration-tools:Program Info value which may include a validation functionconfiguration-toolsMaybe a package info parser. This parser is run only for its side effects. It is supposed to  intercept the parsing process and execute any implied action (showing help messages).configuration-toolsprogram info value; use # to construct a value of this typeconfiguration-toolscomputation that is given the configuration that is parsed from the command line.configuration-tools%program name (used in error messages)configuration-toolsprogram info value; use # to construct a value of this typeconfiguration-toolscommand line arguments     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu}vwxyz|{~  Safe-Inferred "#%&pconfiguration-tools>We restrict services to use either HTTP or HTTPS but not both.TLS can be turned off explicitely in the configuration file by setting the respective section to null. It can not be turned on or off via command line options. But once it is turned on the values for the certificate and key file can be changed by command line options.configuration-toolsIn order to make TLS optional this type should be used wrapped into a Maybe.configuration-toolsThis option parser does not allow to enable or disable usage of TLS. The option will have effect only when TLS usage is configured in the configuration file or the default configuration.FIXME: print a warning and exit when one of these options is provided even though TLS is turned off.configuration-tools3This is used as default when wrapped into Maybe and the parsed value is not  andthe given default is not .  Safe-Inferred" !"!#!$!$!%!&!'!(!)!*+,-./012345645745845945:45;45<45=45>45?4@A4@B4@C4@D4@E4@F4@G4@H4@I4@J4@K4@L4@M4@N4@O4@P4@Q4@R4@S4@T4@U4@V4@W4@X4@Y4@Z4@[4@\4@]4@^4@_4@`4@a4@b4@c4@d4@e4@f4@g4@h4@i4@j4@k4@l4@m4@n4@o4@p4@q4@r4@s4@t4@u4@v4@w4@x4@y4@z4{|4{}4{~444444444444444444444444444444444444444444444444444444444444444                                                                                                               +                                     N  0configuration-tools-0.7.0-56BwIEqMTWH1MKC3Dd36LeConfiguration.Utils.CommandLineConfiguration.Utils.Internal&Configuration.Utils.Internal.JsonToolsConfiguration.Utils.MaybeConfiguration.Utils.OperatorsConfiguration.Utils.MonoidConfiguration.Utils.ConfigFileConfiguration.Utils.SetupConfiguration.Utils.Validation-Configuration.Utils.Internal.ConfigFileReaderConfiguration.UtilsConfiguration.Utils.HttpPkgInfobaseGHC.Basemappend<*>pure*> Applicative Alternative<|>emptymanysome<*<$ Data.Functor<$>Data.Functor.ConstConstgetConstControl.Applicativeoptional getZipListZipList unwrapMonad WrapMonad WrappedMonad unwrapArrow WrapArrow WrappedArrow Data.Foldableasum Data.Function&<&>liftA2liftA3liftA<**>4optparse-applicative-0.18.1.0-H40Ua5VoxKR6dBYdIcQ709Options.Applicative.Extra renderFailure parserFailureexecParserPuregetParseResulthandleParseResultcustomExecParser execParsersimpleVersioner hsubparserhelperOptions.Applicative.Builder defaultPrefsidmprefs helpIndenthelpShowGlobalshelpLongEqualscolumnssubparserInline noBacktrackshowHelpOnEmptyshowHelpOnError disambiguate multiSuffixinfoforwardOptions noIntersperse failureCode progDescDocprogDesc footerDocfooter headerDocheader briefDescfullDescoption strOption infoOption abortOptionswitchflag'flag strArgumentargument subparser completeraction completeWith commandGroupcommandstylehiddenmetavar noArgErrorhelpDochelp showDefaultshowDefaultWithvaluelongshortdisabled maybeReader eitherReaderstrautoInfoModPrefsMod%Options.Applicative.Builder.Completer bashCompleter listCompleterlistIOCompleter$Options.Applicative.Builder.Internalinternal OptionFields FlagFields CommandFieldsArgumentFieldsHasName HasCompleterHasValue HasMetavarModOptions.Applicative.Types overFailure mkCompleter readerError readerAbortUnexpectedErrorExpectsArgError MissingError UnknownError ShowHelpTextInfoMsgErrorMsg ParseError infoPolicyinfoFailureCode infoFooter infoHeader infoProgDesc infoFullDesc infoParser ParserInfoprefTabulateFillprefHelpShowGlobalprefHelpLongEquals prefColumns prefBacktrackprefShowHelpOnEmptyprefShowHelpOnErrorprefDisambiguateprefMultiSuffix ParserPrefsReadM CompleterexecCompletionCompletionResult execFailure ParserFailureCompletionInvokedFailure ParserResultOptions.Applicative.Help.Types helpFooter helpGlobalshelpBodyhelpDescription helpUsage helpHeaderhelpSuggestions helpError ParserHelpIso'IsoLens'LenslensoversetviewisosshowexceptTerrorTDiffOnlyLeft OnlyRightConflictBothresolvemerge mergeLeft mergeRight resolveLeftresolveOnlyLeft resolveRightresolveOnlyRightdiff$fFromJSONDiff $fToJSONDiff$fEqDiff $fOrdDiff $fGenericDiff maybeOption $fFromJSONFUN%×<*<>*><$<>$>MParser.::%:: boolReader boolOption boolOption_enableDisableFlag fileOption eitherReadP jsonOption jsonReaderRightMonoidalUpdateLeftMonoidalUpdateleftMonoidalUpdatefromLeftMonoidalUpdatepLeftMonoidalUpdatepLeftSemigroupalUpdaterightMonoidalUpdatefromRightMonoidalUpdatepRightMonoidalUpdatepRightSemigroupalUpdate$fFromJSONFUN0$fSemigroupRightMonoidalUpdate$fMonoidRightMonoidalUpdate$fSemigroupLeftMonoidalUpdate$fMonoidLeftMonoidalUpdateConfigFilesConfig ConfigFileConfigFileRequiredConfigFileOptional getConfigFile setProperty..:updateProperty%.:!..:defaultConfigFilesConfigpConfigFilesConfig dropAndUncaml$fShowConfigFile$fReadConfigFile$fEqConfigFile$fOrdConfigFilemainmkPkgInfoModulesConfigValidationvalidateHttpOrHttpsUrlvalidateHttpUrlvalidateHttpsUrl validateUrivalidateAbsoluteUrivalidateAbsoluteUriFragment validateIPv4 validateIPv6 validatePortvalidateNonEmptyvalidateLengthvalidateMaxLengthvalidateMinLengthvalidateMinMaxLengthvalidateFilePath validateFilevalidateFileReadablevalidateFileWritablevalidateDirectoryvalidateExecutablevalidateConfigFile validateFalse validateTrue validateBoolvalidateNonNegativevalidatePositivevalidateNonPositivevalidateNegativevalidateNonNull validateLessvalidateLessEqvalidateGreatervalidateGreaterEq validateRangeConfigFileFormatYamlJsonOtherparseConfigFilesreadConfigFile loadLocal$fNFDataConfigFileFormat$fShowConfigFileFormat$fReadConfigFileFormat$fEqConfigFileFormat$fOrdConfigFileFormat$fEnumConfigFileFormat$fBoundedConfigFileFormat$fGenericConfigFileFormatProgramInfoValidate ProgramInfoConfigValidationFunctionrunConfigValidation piDescription piHelpHeader piHelpFooterpiOptionParserpiDefaultConfigurationpiValidateConfigurationpiConfigurationFiles%piOptionParserAndDefaultConfiguration programInfoprogramInfoValidaterunWithConfigurationrunWithPkgInfoConfigurationparseConfiguration$fFromJSONPrintConfigMode$fToJSONPrintConfigModeHttpClientConfigurationHttpServiceConfigurationHttpServiceTLSConfiguration hstcCertFile hstcKeyFile"defaultHttpServiceTLSConfiguration#validateHttpServiceTLSConfigurationpHttpServiceTLSConfigurationhscHosthscPort hscUseTLSdefaultHttpServiceConfiguration validateHttpServiceConfigurationpHttpServiceConfigurationhccHosthccPort hccUseTLSdefaultHttpClientConfigurationvalidateHttpClientConfigurationpHttpClientConfigurationhttpService2clientConfiguration#$fToJSONHttpServiceTLSConfiguration%$fFromJSONHttpServiceTLSConfiguration $fToJSONHttpServiceConfiguration$fToJSONHttpClientConfiguration$fFromJSONFUN1$fShowHttpClientConfiguration$fReadHttpClientConfiguration$fEqHttpClientConfiguration$fOrdHttpClientConfiguration$fShowHttpServiceConfiguration$fReadHttpServiceConfiguration$fEqHttpServiceConfiguration$fOrdHttpServiceConfiguration!$fShowHttpServiceTLSConfiguration!$fReadHttpServiceTLSConfiguration$fEqHttpServiceTLSConfiguration $fOrdHttpServiceTLSConfiguration mergeVectors GHC.MaybeMaybeNothing$ghc-prim GHC.TypesFalseTrue$aeson-2.1.2.1-4QFSJ9mRhdxDvTHHXtJzK8Data.Aeson.Types.FromJSONFromJSON SemigroupData.Aeson.Types.InternalValue parseJSON.: Data.AesonthrowDecodeStrict' throwDecode'throwDecodeStrict throwDecodeeitherDecodeFileStrict'eitherDecodeStrict' eitherDecode'eitherDecodeFileStricteitherDecodeStrict eitherDecodedecodeFileStrict' decodeStrict'decode'decodeFileStrict decodeStrictdecode encodeFileencodeAesonExceptionData.Aeson.TypesfoldableData.Aeson.Types.ClassGToJSON GToEncodingData.Aeson.Types.ToJSON toEncoding2toJSON2 toEncoding1toJSON1genericToJSONKeygenericLiftToEncodinggenericToEncodinggenericLiftToJSON genericToJSONGToJSON'ToArgsToJSONtoEncodingList toJSONListtoJSON toEncodingKeyValue.= ToJSONKey toJSONKey toJSONKeyListToJSONKeyFunction ToJSONKeyTextToJSONKeyValue GToJSONKeyToJSON1liftToEncodingListliftToEncoding liftToJSONliftToJSONListToJSON2liftToEncodingList2liftToEncoding2 liftToJSON2liftToJSONList2Data.Aeson.Encoding.Internalpairs fromEncodingEncodingSeries.!=.:!.:?fromJSONwithEmbeddedJSONwithBoolwithScientific withArraywithText withObject parseJSON2 parseJSON1genericFromJSONKeygenericLiftParseJSONgenericParseJSONparseIndexedJSON GFromJSONFromArgs parseJSONList FromJSONKey fromJSONKeyfromJSONKeyListFromJSONKeyFunctionFromJSONKeyValueFromJSONKeyTextParserFromJSONKeyCoerceFromJSONKeyText GFromJSONKey FromJSON1 liftParseJSONliftParseJSONList FromJSON2liftParseJSON2liftParseJSONList2Data.Aeson.Parser.Internaljson'jsoncamelTo2defaultJSONKeyOptionsdefaultTaggedObjectdefaultOptionsobjectJSONPathResultErrorSuccessObjectArrayNullNumberBoolString DotNetTimefromDotNetTimeOptionsrejectUnknownFieldstagSingleConstructorsunwrapUnaryRecords sumEncodingomitNothingFieldsallNullaryToStringTagfieldLabelModifierconstructorTagModifier SumEncodingcontentsFieldName tagFieldName TwoElemArrayObjectWithSingleField TaggedObject UntaggedValueJSONKeyOptions keyModifierData.Aeson.Types.GenericZeroOneData.Aeson.KeyKey mtl-2.2.2Control.Monad.Writer.Class MonadWriterFoldablevalidateFileExecutableAppConfiguration_piDescription _piHelpHeader _piHelpFooter_piOptionParser_piDefaultConfiguration_piValidateConfiguration Data.EitherRight_piConfigurationFiles configFiles mainConfigpAppConfiguration runInternalvalidateConfigGHC.IO.StdHandlesstderr mainOptionsnametagrevisionbranchbranch' vcsVersioncompilerflags optimisationarchlicense licenseText copyrightauthorhomepagepackage packageNamepackageVersion dependenciesdependenciesWithLicenses versionStringlongInfopkgInfo