úÎ!S’Q%      !"#$Safelm& auto-update+Settings to control how values are updated.!This should be constructed using ! and record update syntax, e.g.: let settings =  {  =  }  auto-update;Microseconds between update calls. Same considerations as % apply.Default: 1 second (1000000) auto-updatelNOTE: This value no longer has any effect, since worker threads are dedicated instead of spawned on demand.tPreviously, this determined how many times the data must be requested before we decide to spawn a dedicated thread. Default: 3 auto-update0Action to be performed to get the current value.Default: does nothing. auto-updateDefault value for creating an . auto-updateGenerate an action which will either read from an automatically updated value, or run the update action in the current thread. auto-update»Generate an action which will either read from an automatically updated value, or run the update action in the current thread if the first time or the provided modify action after that.& auto-update?Turn a runtime exception into an impure exception, so that all 'b actions will complete successfully. This simply defers the exception until the value is forced.Safelm¬(SafeXlm,ü  auto-updatebSetting to control whether the action happens at the leading and/or trailing edge of the timeout. auto-updateÝPerform the action immediately, and then begin a cooldown period. If the trigger happens again during the cooldown, wait until the end of the cooldown and then perform the action again, then enter a new cooldown period.  auto-update‡Start a cooldown period and perform the action when the period ends. If another trigger happens during the cooldown, it has no effect.  auto-update/Settings to control how debouncing should work.!This should be constructed using defaultDebounceSettings! and record update syntax, e.g.: let settings = defaultDebounceSettings {   = flushLog }  auto-update6Length of the debounce timeout period in microseconds.Default: 1 second (1000000)  auto-updateAction to be performed.FNote: all exceptions thrown by this action will be silently discarded.Default: does nothing. auto-updateSWhether to perform the action on the leading edge or trailing edge of the timeout. Default: . auto-updateÝPerform the action immediately, and then begin a cooldown period. If the trigger happens again during the cooldown, wait until the end of the cooldown and then perform the action again, then enter a new cooldown period. auto-update‡Start a cooldown period and perform the action when the period ends. If another trigger happens during the cooldown, it has no effect.    SafeXlm03 auto-updateDefault value for creating a DebounceSettings. auto-updateKGenerate an action which will trigger the debounced action to be performed.    Safe"#lmP˜) auto-updateState of reaper.* auto-updateNo reaper thread+ auto-updateThe current jobs auto-update%A data structure to hold reaper APIs. auto-updateAdding an item to the workload auto-updateReading workload. auto-updateJStopping the reaper thread if exists. The current workload is returned. auto-update0Killing the reaper thread immediately if exists. auto-update?Settings for creating a reaper. This type has two parameters: workload$ gives the entire workload, whereas itemG gives an individual piece of the queue. A common approach is to have workload be a list of items. This is encouraged by " and $. auto-updateÿ~The action to perform on a workload. The result of this is a "workload modifying" function. In the common case of using lists, the result should be a difference list that prepends the remaining workload to the temporary workload. The temporary workload here refers to items added to the workload while the reaper action is running. For help with setting up such an action, see $. Default: do nothing with the workload, and then prepend it to the temporary workload. This is incredibly useless; you should definitely override this default. auto-update1Number of microseconds to delay between calls of .Default: 30 seconds. auto-updateAdd an item onto a workload.Default: list consing.  auto-updateNCheck if a workload is empty, in which case the worker thread will shut down. Default: ,.! auto-updateAn empty workload.Default: empty list." auto-updateDefault ReaperSettings4 value, biased towards having a list of work items.# auto-update¢Create a reaper addition function. This function can be used to add new items to the workload. Spawning of reaper threads will be handled for you automatically.$ auto-updateA helper function for creating ‚ functions. You would provide this function with a function to process a single work item and return either a new work item, or Nothing if the work item is expired.! "#$" !#$-      !"#$%&'()*+,-./01+23456+789(auto-update-0.1.6-GREUn4tHyDS5APDj50DglTControl.AutoUpdateControl.Debounce.InternalControl.DebounceControl.ReaperData.Time.ClockgetCurrentTimeControl.AutoUpdate.UtilUpdateSettings updateFrequpdateSpawnThreshold updateActiondefaultUpdateSettings mkAutoUpdatemkAutoUpdateWithModify DebounceEdgeLeadingTrailingDebounceSettings debounceFreqdebounceAction debounceEdge leadingEdge trailingEdgemkDebounceInternal$fShowDebounceEdge$fEqDebounceEdgedefaultDebounceSettings mkDebounceReaper reaperAdd reaperRead reaperStop reaperKillReaperSettings reaperAction reaperDelay reaperCons reaperNull reaperEmptydefaultReaperSettingsmkReaper mkListActionbase GHC.Conc.IO threadDelay catchSomeghc-prim GHC.TypesIO Data.IORefatomicModifyIORef'StateNoReaperWorkload Data.Foldablenull