diff --git a/Graphics/FreeGame/Util.hs b/Graphics/FreeGame/Util.hs
--- a/Graphics/FreeGame/Util.hs
+++ b/Graphics/FreeGame/Util.hs
@@ -61,8 +61,13 @@
 loadBitmaps :: FilePath -> Q [Dec]
 loadBitmaps path = do
     paths <- runIO $ getFileList path
-    forM paths $ \p -> let name = pathToName p
-        in funD (mkName name) [clause [] (normalB $ load name $ path ++ '/' : p) []]
+    
+    sequence $ do
+        p <- paths
+        let name = pathToName p
+        [ return $ SigD (mkName name) (ConT ''Bitmap)
+            , funD (mkName name) [clause [] (normalB $ load name $ path ++ '/' : p) []]
+            ]
     where
         load name fp = do
             runIO $ putStrLn $ "Defined: " ++ fp ++ " as `" ++ name ++ "'"
diff --git a/free-game.cabal b/free-game.cabal
--- a/free-game.cabal
+++ b/free-game.cabal
@@ -1,5 +1,5 @@
 name:                free-game
-version:             0.3.2.4
+version:             0.3.2.5
 synopsis:            Create graphical applications for free.
 description:         Cross-platform GUI library based on free monads
 homepage:            https://github.com/fumieval/free-game
@@ -36,22 +36,22 @@
     , Graphics.FreeGame.Internal.Finalizer
   ghc-options: -Wall -fexcess-precision -O2
   build-depends: base == 4.*
-    , array >= 0.3
+    , array >= 0.4
     , containers >= 0.4
     , directory >= 1.0
     , filepath >= 1.3
     , free == 3.*
     , freetype2 >= 0.1
-    , GLFW-b >= 0.1
-    , hashable >= 1.0
-    , JuicyPixels-repa >= 0.4
+    , GLFW-b >= 0.1.0.3
+    , hashable >= 1.2
+    , JuicyPixels-repa >= 0.5.1
     , mtl >= 2.1
-    , OpenGL >= 2.5
-    , OpenGLRaw >= 1.1
+    , OpenGL >= 2.6 && < 3.0
+    , OpenGLRaw >= 1.3
     , random == 1.*
     , repa >= 3.2
     , StateVar
     , transformers >= 0.3
-    , vect >= 0.4.6
-    , void >= 0.1
+    , vect >= 0.4.7
+    , void >= 0.5
     , template-haskell
