h$Q     None ' file-embed(Embed a single file in your source code. import qualified Data.ByteString myFile :: Data.ByteString.ByteString myFile = $(embedFile "dirName/fileName") file-embedMaybe embed a single file in your source code depending on whether or not file exists.Warning: When a build is compiled with the file missing, a recompile when the file exists might not trigger an embed of the file. You might try to fix this by doing a clean build. import qualified Data.ByteString maybeMyFile :: Maybe Data.ByteString.ByteString maybeMyFile = $(embedFileIfExists "dirName/fileName") file-embedEmbed a single existing file in your source code out of list a list of paths supplied. import qualified Data.ByteString myFile :: Data.ByteString.ByteString myFile = $(embedOneFileOf [ "dirName/fileName", "src/dirName/fileName" ]) file-embed2Embed a directory recursively in your source code. import qualified Data.ByteString myDir :: [(FilePath, Data.ByteString.ByteString)] myDir = $(embedDir "dirName")  file-embed:Embed a directory listing recursively in your source code.  a myFile = $(embedStringFile "dirName/fileName") Since 0.0.9  file-embedEmbed a single existing string file in your source code out of list a list of paths supplied. Since 0.0.9  file-embedAllocate the given number of bytes in the generate executable. That space can be filled up with the   and  functions.  file-embedLike  , but takes a postfix for the magic string. In order for this to work, the same postfix must be used by   / /. This allows an executable to have multiple  ByteString4s injected into it, without encountering collisions. Since 0.0.8  file-embedInject some raw data inside a  ByteString0 containing empty, dummy space (allocated with  dummySpace). Typically, the original  ByteString, is an executable read from the filesystem. file-embedLike  +, but takes a postfix for the magic string. Since 0.0.8 file-embedSame as  , but instead of performing the injecting in memory, read the contents from the filesystem and write back to a different file on the filesystem. file-embedLike +, but takes a postfix for the magic string. Since 0.0.8  file-embedTake a relative file path and attach it to the root of the current project.The idea here is that, when building with Stack, the build will always be executed with a current working directory of the root of the project (where your .cabal file is located). However, if you load up multiple projects with  stack ghci7, the working directory may be something else entirely.This function looks at the source location of the Haskell file calling it, finds the first parent directory with a .cabal file, and uses that as the root directory for fixing the relative path. 5$(makeRelativeToProject "data/foo.txt" >>= embedFile) file-embedTake a predicate to infer the project root and a relative file path, the given file path is then attached to the inferred project rootThis function looks at the source location of the Haskell file calling it, finds the first parent directory with a file matching the given predicate, and uses that as the root directory for fixing the relative path. $(makeRelativeToLocationPredicate ((==) ".cabal" . takeExtension) "data/foo.txt" >>= embedFile)  file-embed bs to inject file-embedoriginal BS containing dummy file-embed7new BS, or Nothing if there is insufficient dummy space file-embedpostfix of magic string file-embed bs to inject file-embedoriginal BS containing dummy file-embed7new BS, or Nothing if there is insufficient dummy space file-embed bs to inject file-embed template file file-embed output file file-embedpostfix of magic string file-embed bs to inject file-embed template file file-embed output file        *file-embed-0.0.15.0-63VRcBjQiyx4pc1k40Rc0zData.FileEmbed embedFileembedFileIfExistsembedOneFileOfembedDirembedDirListinggetDirbsToExp stringToBsembedStringFileembedOneStringFileOfstrToExp dummySpacedummySpaceWithinject injectWith injectFileinjectFileWithmakeRelativeToProjectmakeRelativeToLocationPredicate