úÎNLg      Store Dyre''s command-line options to the IO-Store dyre, 8 and then execute the provided IO action with all Dyre's 4 options removed from the command-line arguments. Get the value of the '--force-reconf' flag, which is used 5 to force a recompile of the custom configuration. Get the value of the '--dyre-debug' flag, which is used : to debug a program without installation. Specifically, $ it forces the application to use  './cache/' as the cache  directory, and ./! as the configuration directory. >Get the path to the master binary. This is set to the path of # the *current* binary unless the '--dyre-master-binary=' flag " is set. Obviously, we pass the '--dyre-master-binary=' flag to = the custom configured application from the master binary. ?Get the path to a persistent state file. This is set only when  the '--dyre-state-persist='# flag is passed to the program. It  is used internally by Config.Dyre.Relaunch to save and restore ' state when relaunching the program. CReturn the set of options which will be passed to another instance D of Dyre. Preserves the master binary, state file, and debug mode  flags, but doesn'/t pass along the forced-recompile flag. Can be C passed a set of other arguments to use, or it defaults to using % the current arguments when passed . 9Look for the given flag in the argument array, and store 0 its value under the given name if it exists. 9The array of all arguments that Dyre recognizes. Used to + make sure none of them are visible past  ;What it says on the tin. Gets the current PID as a string. B Used to determine the name for the state file during restarts. :Called whenever execution needs to be transferred over to  a different binary. 'Just relaunch the master binary. We don't have any important ( state to worry about. (Or, like when   calls  it, we're managing state on our own.) ;Relaunch the master binary, but first preserve the program  state so that we can use the   functions to get  it back again later. Since we' re not trying to be fancy here,  we' ll just use  to write it out. /Restore state that was previously saved by the   = function. If unsuccessful, it will simply return Nothing. Restore state using the   function, but return ' the provided default state if we can't get anything better.      DThis structure is how all kinds of useful data is fed into Dyre. Of  course, only the , , and  fields E are really necessary. By using the set of default values provided  as Config.Dyre.defaultParams", you can get all the benefits of E using Dyre to configure your program in only five or six lines of  code. ;The name of the project. This needs to also be the name of ; the executable, and the name of the configuration file. 3The directory to look for a configuration file in. ;The directory to store build files in, including the final  generated executable. :The main function of the program. When Dyre has completed > all of its recompilation, it passes the configuration data - to this function and gets out of the way. ;This function is used to display error messages that occur ? during recompilation, by allowing the program to modify its  initial configuration. 3Packages that need to be hidden during compilation /Miscellaneous GHC compilation settings go here 7A status output function. Will be called with messages ; when Dyre recompiles or launches anything. A good value  is 'hPutStrLn stderr' , assuming there is no pressing ) reason to not put messages on stderr.    BReturn the paths to, respectively, the current binary, the custom 5 binary, the config file, and the cache directory. CCheck if a file exists. If it exists, return Just the modification  time. If it doesn't exist, return Nothing. AAttempts to compile the configuration file. Will return a string # containing any compiler output. <Assemble the arguments to GHC so everything compiles right. IA set of reasonable defaults for configuring Dyre. If the minimal set of K fields are modified, the program will use the XDG-defined locations for & configuration and cache files (see System.Environment.XDG.BaseDir for M details), pass no special options to GHC, and will output status messages  to stderr. +The fields that will have to be filled are , , and   = is how Dyre recieves control of the program. It is expected D that it will be partially applied with its parameters to yield a main 1 entry point, which will then be called by the main function, as well $ as by any custom configurations.          !"#$%&"'()*dyre-0.4Config.Dyre.OptionsConfig.Dyre.CompatConfig.Dyre.RelaunchConfig.Dyre.ParamsConfig.Dyre.PathsConfig.Dyre.Compile Config.DyrewithDyreOptions getReconfgetDebuggetMasterBinarygetStatePersist customOptions getPIDString customExecrelaunchMasterrelaunchWithStatemaybeRestoreState restoreStateParams projectName configDircacheDirrealMain showError hidePackagesghcOpts statusOutgetPaths maybeModTime customCompile defaultParamswrapMainbase Data.MaybeNothing storeFlagdyreArgsGHC.Showshow makeFlags