úÎ.f-¨None&Time delay between calls to the actionAction to performNoneTry to load state from a file.If an error occurs, M a pair is returned. The boolean indicates whether reading the file failed (!) or parsing the content failed ('). The string is an error description.If the operation succeeds,  # the loaded state data is returned.ÈPrepare a save action which writes state into a JSON file. This action defers the work to a separate dedicated thread, and ensures the file isn't saved more than once within the given time interval.€The action is non-blocking but there is a chance a save is missed if saves are triggered simultaneously from different threads.You can call the returned action from your UI thread as a reaction to a state change, without worrying about delay or IO load.Like ±, but also takes a repository path. Creates a Git repository there if there isn't yet. Two save actions are returned. The first one simply saves state to a file, just like in L. The second one saves to file and then commits it into the Git repository.]Note that the file path is relative to the repo path. For example, if you have the repo in "homejoerepo" and the file is "homejoe/repo/file", pass just "file" as the file path.‡This is a variant which returns a single save action, which either uses or doesn't use a Git repo. If the repo path (3rd argument) is  @, then Git isn't used at all and the file path is treated like § would. Otherwise, i.e. if a repo path is specified, the returned action will commit changes to the Git repo, and the repo and file path arguments are treated like 3 would, i.e. the file path is relative to the repo.#If you use this function, also use + to determine the correct path to pass to . If you use ¾ to save the state, that function combines the repo path and the file path when needed, to determine the full path of the state file. But then, how do you determine which path to pass to k? This is exactly what this function does. Pass it the optional repo path and the file path you passed to ., and you'll get a full path you can pass to . File to load #Minimal time interval between saves File to save #Minimal time interval between saves(File to save, path relative to repo pathPath of the Git repository*Commit message to use in automatic commits#Minimal time interval between saves3File to save. If the repo path (next argument) is  Ü, no Git repo is used, and this path is relative to the process working dir, or absolute. If a repo path is specified, this path is relative to repo path, and the returned action also commits the file to the Git repo.2Optional path of the Git repository. If you pass  (, a Git repo won't be used. If you pass  6 a repo path, the save action will commit the change.*Commit message to use in automatic commits        json-state-0.1.0.0Data.JsonStateControl.Debounce loadState mkSaveState mkSaveStateVCmkSaveStateChoose stateFilePath mkDebouncebase Data.EitherLeftghc-prim GHC.TypesFalseTrueRight Data.MaybeNothing saveAction saveActionVCJust