úÎA€@ŽNone?An opaque representation of the contents and last modification ' times of a forest of directory trees.  Create a  for later checking with  BChecks that all the files present in the initial set of paths are M the exact set of files currently present, with unchanged modifcations times AThis is the core of the functions in this module. It converts a " list of filepaths into a list of  annotated with = the modification times of the files located in those paths. None@A type synonym to simply talking about the type loaded by hint. Convert an action to generate s into Snap and IO actions M that handle periodic reloading. The resulting action will share initialized G state until the next execution of the input action. At this time, the " cleanup action will be executed. MThe first two arguments control when recompiles are done. The first argument H is an action that is executed when compilation starts. The second is a K function from the result of the first action to an action that determines E whether the value from the previous compilation is still good. This N abstracts out the strategy for determining when a cached result is no longer  valid. JIf an exception is raised during the processing of the action, it will be E thrown to all waiting threads, and for all requests made before the ! recompile condition is reached.  Safe-Inferred   NoneKThis function derives all the information necessary to use the interpreter N from the compile-time environment, and compiles it in to the generated code. 8This could be considered a TH wrapper around a function  > loadSnap :: Typeable a => IO a -> (a -> IO (Snap (), IO ())) > -> [String] -> IO (a, Snap (), IO ()) *with a magical implementation. The [String] argument is a list of F directories to watch for updates to trigger a reloading. Directories C containing code should be automatically picked up by this splice. LThe generated splice executes the initialiser once, sets up the interpreter 3 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 M actions will change to reflect changes in the watched files, reinterpreting H the load function as needed and applying it to the initializer result. KThis will handle reloading the application successfully in most cases. The M cases in which it is certain to fail are those involving changing the types K of the initializer or the load function, or changing the compiler options  required, such as by changing/"adding dependencies in the project' s .cabal 8 file. In those cases, a full recompile will be needed. @Convert the command-line arguments passed in to options for the B hint interpreter. This is somewhat brittle code, based on a few E experimental datapoints regarding the structure of the command-line  arguments cabal produces. BThis function extracts the source paths from the compilation args HThis function creates the Snap handler that actually is responsible for A doing the dynamic loading of actions via hint, given all of the L configuration information that the interpreter needs. It also ensures safe N concurrent access to the interpreter, and caches the interpreter results for / a short time before allowing it to run again. Generally, this won'8t be called manually. Instead, loadSnapTH will generate F a call to it at compile-time, calculating all the arguments from its  environment. 9Convert an InterpreterError to a String for presentation the initializer expression the name of the load function +a list of directories to watch in addition  to those containing code 3A 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, A 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    snap-loader-dynamic-0.10Snap.Loader.DynamicSnap.Loader.Dynamic.TreeWatcherSnap.Loader.Dynamic.EvaluatorSnap.Loader.Dynamic.Signal loadSnapTH TreeStatus getTreeStatuscheckTreeStatusreadModificationTimesdirectory-tree-0.11.0System.Directory.TreeAnchoredDirTreeTS HintLoadableprotectedHintEvaluatorhelpersignals saveHandlersrestoreHandlersprotectHandlers getHintOpts getSrcPathshintSnapformat