This module includes the machinery necessary to use hint to load action code dynamically. It includes a Template Haskell function to gather the necessary compile-time information about code location, compiler arguments, etc, and bind that information into the calls to the dynamic loader.
This function derives all the information necessary to use the interpreter from the compile-time environment, and compiles it in to the generated code.
This could be considered a TH wrapper around a function
loadSnap :: Initializer s -> SnapExtend s () -> [String] -> IO (Snap ())
with a magical implementation.
The upshot is that you shouldn't need to recompile your server during development unless your .cabal file changes, or the code that uses this splice changes.
the list of modules to interpret
the list of modules to import in addition to those being interpreted
additional directories to watch for changes to trigger to recompile/reload
the expression to interpret in the
context of the loaded modules and imports.
It should have the type
|-> Q Exp|
This is the backing implementation for
interface can be used when the types involved don't include a
SnapExtend and an Initializer.