diff --git a/Data/FileEmbed.hs b/Data/FileEmbed.hs
--- a/Data/FileEmbed.hs
+++ b/Data/FileEmbed.hs
@@ -2,6 +2,7 @@
 module Data.FileEmbed
     ( embedFile
     , embedDir
+    , getDir
     ) where
 
 import Language.Haskell.TH (runQ,
@@ -35,6 +36,12 @@
 -- > myDir = $(embedDir "dirName")
 embedDir :: FilePath -> Q Exp
 embedDir fp = ListE <$> ((runIO $ fileList fp) >>= mapM pairToExp)
+
+-- | Get a directory tree in the IO monad.
+--
+-- This is the workhorse of 'embedDir'
+getDir :: FilePath -> IO [(FilePath, B.ByteString)]
+getDir = fileList
 
 pairToExp :: (FilePath, B.ByteString) -> Q Exp
 pairToExp (path, bs) = do
diff --git a/file-embed.cabal b/file-embed.cabal
--- a/file-embed.cabal
+++ b/file-embed.cabal
@@ -1,5 +1,5 @@
 name:            file-embed
-version:         0.0.2
+version:         0.0.3
 license:         BSD3
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -13,8 +13,8 @@
 
 library
     build-depends:   base >= 4 && < 5,
-                     bytestring >= 0.9.1.4 && < 1,
-                     directory >= 1.0.0.3 && < 2,
+                     bytestring >= 0.9.1.4 && < 0.10,
+                     directory >= 1.0.0.3 && < 1.1,
                      template-haskell
     exposed-modules: Data.FileEmbed
     ghc-options:     -Wall
