úÎ!\V T      !"#$%&'()*+,-./012 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q RS Safe 8=>?UVX_k% confererPurely Generics machinery, ignore...confererThis class only exist for the Generics¹ machinery, it means that a value can get updated using a config, so for example a Warp.Settings can get updated from a config, but that doesn't make much sense for something like an TOYou'd normally would never implement this typeclass, if you want to implement  = you should implement that directly, and if you want to use   and  to implement   you should let the default Generics# based implementation do it's thing confererÿyHere implementing this typeclass means that this type has some kind of default that is both always valid and has always the same semantics, for example: Warp.Settings has a default since it's always use in the same way (to configure a warp server) but for example an Int could mean many things depending on the context so it doesn't really make sense to implement it for itIt's also used for the UI implementation, if you have a Record made up from types that implement   you can derive the   automatically by implementing   and deriving (using U)  confererKMain typeclass for defining the way to get values from config, hiding the V based nature of the sHere a W… means that the value didn't appear in the config, some instances never return a value since they have defaults that can never fail conferer)The type for creating a provider given a •, some providers require a certain configuration to be initialized (for example: the redis provider needs connection info to connect to the server)conferer|Core type that the user of this library interact with, in the future it may contain more this besides a list of providersconfererThe way to index Qs, basically list of names that will be adapted to whatever the provider needsconfererVCore interface for library provided configuration, basically consists of getting a e and informing returning a maybe signaling the value and if it's present in that specific providerconferer,Collapse a key into a textual representation  SafeX_'Ø#confererMake a   from a X$confererMake a  from a X%confererMake a  from List of , V pairs#$%%#$SafeX_(¶&confererCreate a null &&SafeX_)å'conferer Create a   from a prefix and another  ''SafeX_,ø(conferer Create a  > using a function to transform the supplied keys and another  )conferer Create a   using a X  - to transform the supplied keys and another  ())(SafeX_3™*confererA text to namespace env vars+conferer.Type alias for the function to lookup env vars,conferer  for env  that uses the real Y function-conferer  for env D that allows parameterizing the function used to lookup for testing.confererVGet the env name from a prefix and a key by uppercasing and intercalating underscores#keyToEnVar "awesomeapp" "warp.port""AWESOMEAPP_WARP_PORT"*+,-.,-*+.SafeX_7 /conferer Create a  ! for CLIArgs from a argument list0confererSame as / but using Z to provide the argument list1conferer8Parse an argument list into a dictionary suitable for a /010/1 SafeX_B 2conferer0Most Basic function to interact directly with a . It always returns VU in the case of success and implements the logic to traverse providers inside the .3confererTFetch a value from a config key that's parsed using the FetchFromConfig instance.:This function throws an exception if the key is not found.4conferer Create a new $ by concatenating two existing keys.5confererThe empty configuration, this ; is used as the base for most config creating functions.7confererInstantiate a   using the 58confererInstantiate a  using an ProviderCretor and a  and add to the config9confererSame as 2 but it throws if the  isn't found2345678923456789 Safe =?UVX_kJ?confererJConcatenate many transformations to the config based on keys and functions@confererPurely Generics machinery, ignore...?confererComplete configconferer<Key that indicates the part of the config that we care aboutconfererNKey that we use to find the config (usually concatenating with the other key)conferer>Function that knows how to use the value to update the configconferer"Result of the last config updatingconfererUpdated config:;<=>?<=>?:; SafeX_J¥MNMN SafeX_OÎOconferer  for properties file " that read from a config file in config/{env}.properties* and parses it as a properties file with some.key=a value linesPconferer  for properties file  that only parses a given V as a properties fileQconferer/Transform a line into a key/value pair (or not)OPQOPQ(c) 2019 Lucas David TraversoMIT*Lucas David Traverso <lucas6246@gmail.com> experimentalportableSafe7X_U!RconfererTDefault config which reads from command line arguments, env vars and property filesSconferermDefault config which reads from command line arguments, env vars, property files and some default key/values& #$%&'()*+,-./012345689OPQRS 2345689RS SafeX_V{[\]^_`abc !""#$%&'()*+,-./0123456789:;<= > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ]^_`abcdefghijklmnmo p q r s t u v wx'conferer-0.2.0.0-1fqLronVELM4g3wy0uuMdSConfererConferer.TypesConferer.Provider.SimpleConferer.Provider.NullConferer.Provider.NamespacedConferer.Provider.MappingConferer.Provider.EnvConferer.Provider.CLIArgs Conferer.CoreConferer.FetchFromConfig.BasicsConferer.Provider.Files Conferer.Provider.PropertiesFilePaths_confererbase Data.Function&FailedToFetchErrorConfigParsingErrorUpdateFromConfigGupdateFromConfigGUpdateFromConfigupdateFromConfig DefaultConfig configDefFetchFromConfigfetchProviderCreatorConfig providersdefaultsKeyPathunKeyProvidergetKeyInProviderkeyName $fIsStringKey$fExceptionConfigParsingError$fShowConfigParsingError$fExceptionFailedToFetchError$fShowFailedToFetchError $fShowKey$fEqKey$fOrdKey$fEqConfigParsingError$fEqFailedToFetchErrormkMapProvider'mkPureMapProvider mkMapProvidermkNullProvidermkNamespacedProvidermkMappingProvider'mkMappingProviderPrefix LookupEnvFunc mkEnvProvidermkEnvProvider' keyToEnvVarmkCLIArgsProvider'mkCLIArgsProviderparseArgsIntoKeyValuegetKey getFromConfig/. emptyConfig withDefaultsmkStandaloneProvider addProvider unsafeGetKeyUpdateFromConfigWithConNameGupdateFromConfigWithConNameGfetchFromConfigByRead fromValueWithfetchFromConfigWithfindKeyAndApplyConfig$fUpdateFromConfigGK1$fUpdateFromConfigGM1$fFetchFromConfigBool$fFetchFromConfigText$fFetchFromConfig[]$fFetchFromConfigMaybe$fFetchFromConfigByteString$fFetchFromConfigFloat$fFetchFromConfigInteger$fFetchFromConfigInt $fUpdateFromConfigWithConNameGM1!$fUpdateFromConfigWithConNameG:*:$fUpdateFromConfigGM10 fromRightgetFilePathFromEnvmkPropertiesFileProvidermkPropertiesFileProvider'lineToKeyValue defaultConfigdefaultConfigWithDefaultsghc-prim GHC.TypesInt GHC.GenericsGeneric text-1.2.3.1Data.Text.InternalText GHC.MaybeNothingcontainers-0.6.0.1Data.Map.InternalMapSystem.Environment lookupEnvgetArgsversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName