Îõ³h$x‡%      !"#$ Safe-Inferred ) polling-cache'Options that dictate the behavior of a  instance. polling-cacheThe   to use. polling-cacheThe  to use. polling-cacheAn optional fuzzing factor.ŠIf provided, this factor defines the maximum number of microseconds that can be randomly added to each delay period. This means that when fuzzing is enabled, the delay between any two refreshes will always be greater than the delay period generated by the cache's  . % disables fuzzing completely. polling-cache+The supported failure handling modes for a  instance.“In the context of the cache action, "failure" means an Exception thrown from the user-supplied action that generates values to populate the cache.ˆBecause these operations are performed in a background thread, the user must decide how failures are to be handled upon cache creation. polling-cacheÐFailures should be ignored entirely; the most relaxed failure handling strategy.This means that + will never be populated as a cache result. polling-cache€If a failure occurs, any previously cached value is immediately evicted from the cache; the strictest failure handling strategy. polling-cacheËFailures will be ignored unless they persist beyond the supplied time span.ÂThis is a middle-ground failure handling strategy that probably makes sense to use in most scenarios. The nature of asynchronous polling implies that somewhat stale values are not an issue to the consumer; therefore, allowing some level of transient failure can often improve reliability without sacrificing correctness.  polling-cache The supported delay modes for a  instance.íThe delay associated with a cache instance define the amount of time that will pass between cache refreshes.  polling-cache=Delay for static number of microseconds between each refresh.  polling-cacheÀDelay for a dynamic number of microseconds between each refresh.§This is useful if different delays should be used for successes or failures, or if the result being retrieved contains information that could affect the delay period.  polling-cache×Delay for a dynamic number of microseconds between each refresh within a set of bounds.This is similarly useful to  é, but when a known lower and upper bound should be applied to the delay period. Regardless of the dynamic delay generated by the user-supplied function, the delay period will never be below the lower bound or above the upper bound.  polling-cacheThe top-level &+ in which caching operations are performed.ËThis exists primarily for testing purposes. Production uses should drop in ' and forget that this exists. polling-cacheThe current system time. polling-cache8Generate a random number between two bounds (inclusive). polling-cacheÃDelay execution of the current thread for a number of microseconds. polling-cache1Spawn a new thread of execution to run an action. polling-cacheRun an action forever. polling-cacheÑStop a thread of execution. The thread can be assumed to have been started using .   None#$ÙÙ  polling-cacheáThe minimum amount of time (in microseconds) that should pass before a cache reload is attempted. polling-cacheÕAn opaque type containing the internals necessary for background polling and caching.ÄLibrary functions will allow the user to create and interact with a Ø, but the raw data is not exposed to users so that the library can maintain invariants. polling-cache%The result of reading a value from a ', including the possibility of failure.ÝDue to the asynchronous (and likely effectful) nature of executing external actions to populate the cache, it's possible for the cache to be "empty" at any point in time. The possible empty states are controlled by the ( selected by the user when creating the  instance. polling-cacheÄA successfully cached value with the time at which it was generated. polling-cache#The supported "empty" states for a .See : for a more in-depth explanation of why this is necessary. polling-cache-A value has never been loaded into the cache. polling-cacheØThe external action used to populate the cache threw an exception at some point in time. polling-cache7The cache has been shut down and can no longer be used. polling-cache Create a " with basic functionality enabled.ÙRecord update syntax can be use to further customize options created using this function: übasicOpts = basicOptions (DelayForMicroseconds 60000000) EvictImmediately customOpts = basicOpts { delayFuzzing = Just 100 }  polling-cacheCreates a new .ÀThe supplied action is used to generate values that are stored in the cache. The action is executed in the background with its delay, failure, and fuzzing behavior controlled by the provided .! polling-cache#Retrieve the current values from a ." polling-cache9Stops the background processing thread associated with a .%Calling this function will place the Í value into the cache after stopping the processing thread, ensuring that a à that has been stopped can no longer be used to query stale values.  !"   !"None4  !" Safe-Inferredz()*+,-./0      !"#$%&'()*+),-./0123456789,polling-cache-0.0.1.0-FFL1YbDuYhc7gXyvBK2RfrData.Cache.InternalData.Cache.Polling Data.Cache PollingCache LoadFailedPaths_polling_cache CacheOptions delayMode failureMode delayFuzzing FailureModeIgnoreEvictImmediatelyEvictAfterTime DelayModeDelayForMicrosecondsDelayDynamicallyDelayDynamicallyWithBounds MonadCache currentTime randomizedelay newThread repeatedly killCache$fMonadCacheIO$fEqFailureMode$fShowFailureMode ThreadDelay CacheResultCacheHit CacheMiss NotYetLoadedStopped basicOptionsnewPollingCache cachedValues stopPolling $fEqCacheMiss$fShowCacheMissbase GHC.MaybeNothingGHC.BaseMonadghc-prim GHC.TypesIOversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName