úÎSÁIï      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œNone"#6Í The raw response of fixer.io A nonempty list of  s 2A sum-type of the supported currencies on fixer.io-A positive and non-0 ratio0The identity of 11Multiply two rates2Divide one rate by another3HEnsure that a rate is internally normalised. This is a requirement for 4?Convert a rate to a 'Ratio Integer' instead of 'Ratio Natural'."This is a lossless transformation.5Convert a rate to a ž.)This may not be a lossless transformation8A rate is valid if:The ratio inside is valid.The ratio is not zero.The ratio is normalised.2  !"#$%&'()*+,-./0123452-./012345  !"#$%&'()*+,    !"#$%&'()*+,-./None"#6K-¸TA cache for currency ratesThis cache uses t as the base currency, but will still cache rates appropriately if rates with a different base currency are cached.W$The result of looking up rates in a \Y)Because we requested a date in the futureZ&Because it was on a weekend or holiday\!A complete cache for the raw API.\This includes a cache for the rates we get, as well as a cache for the rates we do not get.`!Insert a given raw response in a \aLook up rates in cacheb The empty \cThe empty Cached#Insert a rate into the cache as-is.You probably want to be using h or i instead.e!Lookup a rate in the cache as-is.You probably want to be using k instead.f-The default base currency. Currently this is g5The symbols to get by default, given a base currency.hInsert a result into the cache.IThis is probably the function you want to use, it does all the smartness.iYInsert a rate in a cache, but don't insert it if the from and to currencies are the same.j"Look up multiple rates in a cache.This function uses k for each requested symbol.kLook up a rate in a cache.cThis function will try to be smart about what it can find, but will give up after one redirection.lãConvert a set of rates to another base currency with the given rate of the new base currency with respect to the old base currency. In the map, we have the info that for 1 base currency, you get s of the currency in the key.ZIf we now say that for 1 of the old base currency, you can get r of the new base currency`This rate means for one of the new base currency, you can get s / r of the currency in the key.`The current dateThe requested dateaThe current dateThe requested dateTUVWXYZ[\]^_`abcdefghijkl\]^_`WXYZ[abTUVchjikfgldeTUVWXYZ[\]^_None-ST2n}Get rates on a given date %/<date>?base=<base>&symbols=<symbols>~Get latest rates %/latest?base=<base>&symbols=<symbols>The full API at api.fixer.io€A Ÿ for The client function for ~‚The client function for }}~€‚~}€‚None6KFÐ ƒ-The result of calling the API the local cache„3because you tried to call the API for a future date…-because the date is on a weekend, for example  Microseconds‡A client functionˆRun a ‡ action and figure out the ¡ and \ arguments automatically.-This is probably the function you want to use‰IA default configuration for the client: One second of delay between callsŠRun a ‡* action with full control over the inputs.‹Get the latest rates.ÿNote that this function fetches the latest rates, but that does not mean that the latest symbols appeared on the current date. However, there is no way to predict what date the last rates appeared on, so we still look in the cache at the current date. For maximum cache hits, use Œ7 and only look at the past beyond the last three days.Œ!Get the rates at a specific date.ADeclare that we want to use the given file as a persistent cache. Note that ‡‡ will still use a per-run cache if this function is not used. This function only makes sure that the cache is persistent accross runs. nwithFileCache path func = do readCacheFromFileIfExists path r <- func flushCacheToFile path pure rŽ@Read a persistent cache from the given file if that file exists.5Flush the currently gathered cache to the given file. ƒ„…†‡ˆ‰Š‹ŒŽ ˆ‰Š‡‹Œƒ„…†Žƒ„…†¢£ ¤¥¦§¨‡©ªNoneG°;  !"#$%&'()*+,-0125ƒ„…†‡ˆ‹Œ;‡ˆƒ„…†‹Œ  !"#$%&'()*+, -0125SafeIÈ«¬­®¯°±²³   !"#$%&'()*+,-./01234567789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]]^_`abcddefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘ˆ‰’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®®¯¯°±²Ž³´µ¶·¸¹º»¼$fixer-0.0.0.0-KyDvPt0WkGj3Gzgyze5650Fixer Fixer.Types Fixer.Cache Fixer.API Fixer.Client Paths_fixerbaseData.List.NonEmpty:|NonEmpty time-1.8.0.2Data.Time.Calendar.Gregorian fromGregorianData.Time.Calendar.DaysDayRates ratesBase ratesDate ratesRatesSymbols unSymbolsCurrencyAUDBGNBRLCADCHFCNYCZKDKKEURGBPHKDHRKHUFIDRILSINRJPYKRWMXNMYRNOKNZDPHPPLNRONRUBSEKSGDTHBTRYUSDZARRateunRateoneRatemulRatedivRate normaliseRaterateToRational rateToDouble $fToJSONRate$fFromJSONRate$fValidityRate$fToJSONKeyCurrency$fToJSONCurrency$fFromJSONKeyCurrency$fFromJSONCurrency$fToHttpApiDataCurrency$fValidityCurrency$fToHttpApiDataSymbols$fValiditySymbols$fFromJSONRates$fValidityRates $fShowRate$fEqRate $fGenericRate$fShowCurrency$fReadCurrency $fEqCurrency $fOrdCurrency$fEnumCurrency$fBoundedCurrency$fGenericCurrency $fShowSymbols $fEqSymbols $fOrdSymbols$fGenericSymbols $fShowRates $fEqRates$fGenericRates RateCache unRateCacheFixerCacheResult NotInCacheCacheDateNotInPastWillNeverExistInCache FixerCache fCacheRatesfCacheDaysWithoutRates insertRates lookupRatesemptyFixerCacheemptyRateCacherawInsertInCacherawLookupInCachedefaultBaseCurrencyallSymbolsExceptinsertRatesInCachesmartInsertInCachelookupRatesInCachesmartLookupRateInCacheconvertToBaseWithRate$fValidityFixerCacheResult$fValidityRateCache$fToJSONFixerCache$fFromJSONFixerCache$fValidityFixerCache$fShowFixerCacheResult$fEqFixerCacheResult$fGenericFixerCacheResult$fShowRateCache $fEqRateCache$fGenericRateCache$fFromJSONRateCache$fToJSONRateCache$fShowFixerCache$fEqFixerCache$fGenericFixerCache GetAtDate GetLatestFixerAPIfixerAPI getLatest getAtDate RatesResult DateNotInPastRateDoesNotExist RatesFoundFClientautoRunFixerClient defaultConfigrunFixerClient withFileCachereadCacheFromFileIfExistsflushCacheToFile$fValidityRatesResult $fShowConfig $fEqConfig$fGenericConfig $fGenericFEnv$fFunctorFClient$fApplicativeFClient$fMonadFClient$fMonadReaderFClient$fMonadIOFClient$fShowRatesResult$fEqRatesResult$fGenericRatesResult'validity-0.4.0.3-5WNhJLNaqtkKHuGbPp7dy8 Data.ValidityValidityghc-prim GHC.TypesDouble Data.ProxyProxy confRateDelay.servant-client-0.12.0.1-DLAaqnllSA27fz1pmIkDRg"Servant.Client.Internal.HttpClient ClientEnvConfigFEnv fEnvConfig fEnvLastFetch fEnvCache runFClientversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName