úÎ@Û?éNoneeAn opaque representation of the contents and last modification times of a forest of directory trees. Create a  for later checking with ŽChecks that all the files present in the initial set of paths are the exact set of files currently present, with unchanged modifcations timescThis is the core of the functions in this module. It converts a list of filepaths into a list of L annotated with the modification times of the files located in those paths.NoneN?A type synonym to simply talking about the type loaded by hint.Convert an action to generate Ðs into Snap and IO actions that handle periodic reloading. The resulting action will share initialized state until the next execution of the input action. At this time, the cleanup action will be executed.ÿzThe first two arguments control when recompiles are done. The first argument is an action that is executed when compilation starts. The second is a function from the result of the first action to an action that determines whether the value from the previous compilation is still good. This abstracts out the strategy for determining when a cached result is no longer valid.¯If an exception is raised during the processing of the action, it will be thrown to all waiting threads, and for all requests made before the recompile condition is reached.Safe   None˜This function derives all the information necessary to use the interpreter from the compile-time environment, and compiles it in to the generated code.7This could be considered a TH wrapper around a function yloadSnap :: Typeable a => IO a -> (a -> IO (Snap (), IO ())) -> [String] -> IO (a, Snap (), IO ())Êwith a magical implementation. The [String] argument is a list of directories to watch for updates to trigger a reloading. Directories containing code should be automatically picked up by this splice.ÿxThe generated splice executes the initialiser once, sets up the interpreter for the load function, and returns the initializer's result along with the interpreter's proxy handler and cleanup actions. The behavior of the proxy actions will change to reflect changes in the watched files, reinterpreting the load function as needed and applying it to the initializer result.ÿeThis will handle reloading the application successfully in most cases. The cases in which it is certain to fail are those involving changing the types of the initializer or the load function, or changing the compiler options required, such as by changing/adding dependencies in the project's .cabal file. In those cases, a full recompile will be needed.áConvert the command-line arguments passed in to options for the hint interpreter. This is somewhat brittle code, based on a few experimental datapoints regarding the structure of the command-line arguments cabal produces.AThis function extracts the source paths from the compilation argsÿQThis function creates the Snap handler that actually is responsible for doing the dynamic loading of actions via hint, given all of the configuration information that the interpreter needs. It also ensures safe concurrent access to the interpreter, and caches the interpreter results for a short time before allowing it to run again.ŸGenerally, this won't be called manually. Instead, loadSnapTH will generate a call to it at compile-time, calculating all the arguments from its environment.8Convert an InterpreterError to a String for presentationthe initializer expressionthe name of the load functionFa list of directories to watch in addition to those containing code2A list of command-line options for the interpreterÐA list of modules that need to be interpreted. This should contain only the modules which contain the initialization, cleanup, and handler actions. Everything else they require will be loaded transitively.$A list of paths to watch for updates The name of the function to load)The value to apply the loaded function to   snapl_2BAOm6hhr6C4BbfjK0K799Snap.Loader.DynamicSnap.Loader.Dynamic.TreeWatcherSnap.Loader.Dynamic.EvaluatorSnap.Loader.Dynamic.Signal loadSnapTH TreeStatus getTreeStatuscheckTreeStatusreadModificationTimesdirec_858T1RVMWwiLQQo0odiu52System.Directory.TreeAnchoredDirTreeTS HintLoadableprotectedHintEvaluatorhelpersignals saveHandlersrestoreHandlersprotectHandlers getHintOpts getSrcPathshintSnapformat