diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+### 0.11.0.4
+
+- GHC 8 support.
+
 ### 0.11.0.3
 
 - Updated the documentation in Luminance crate module.
diff --git a/luminance.cabal b/luminance.cabal
--- a/luminance.cabal
+++ b/luminance.cabal
@@ -1,5 +1,5 @@
 name:                luminance
-version:             0.11.0.3
+version:             0.11.0.4
 synopsis:            Type-safe, type-level and stateless graphics framework
 description:         This package exposes several modules to work with /GPUs/ in a stateless and
                      type-safe way. Currently, it uses OpenGL as backend hardware technology but
@@ -113,7 +113,7 @@
                      , Graphics.Luminance.Core.Texture3D
                      , Graphics.Luminance.Core.Vertex
 
-  build-depends:       base           >= 4.8  && < 4.9
+  build-depends:       base           >= 4.8  && < 4.10
                      , containers     >= 0.5  && < 0.6
                      , contravariant  >= 1.3  && < 1.5
                      , dlist          >= 0.7  && < 0.9
@@ -122,7 +122,7 @@
                      , mtl            >= 2.2  && < 2.3
                      , resourcet      >= 1.1  && < 1.2
                      , semigroups     >= 0.16 && < 0.19
-                     , transformers   >= 0.4  && < 0.5
+                     , transformers   >= 0.4  && < 0.6
                      , vector         >= 0.11 && < 0.12
                      , void           >= 0.7  && < 0.8
 
diff --git a/src/Graphics/Luminance/Core/CubemapArray.hs b/src/Graphics/Luminance/Core/CubemapArray.hs
--- a/src/Graphics/Luminance/Core/CubemapArray.hs
+++ b/src/Graphics/Luminance/Core/CubemapArray.hs
@@ -16,7 +16,6 @@
 
 module Graphics.Luminance.Core.CubemapArray where
 
-import Data.Foldable ( for_ )
 import Data.Proxy ( Proxy(..) )
 import Data.Vector.Storable as V ( concat, unsafeWith )
 import Foreign.Ptr ( castPtr, nullPtr )
diff --git a/src/Graphics/Luminance/Core/Framebuffer.hs b/src/Graphics/Luminance/Core/Framebuffer.hs
--- a/src/Graphics/Luminance/Core/Framebuffer.hs
+++ b/src/Graphics/Luminance/Core/Framebuffer.hs
@@ -141,7 +141,7 @@
 
 -- |Typeclass of possible framebuffer color attachments.
 class FramebufferColorAttachment c where
-  addColorOutput :: (MonadIO m,MonadResource m)
+  addColorOutput :: (MonadResource m)
                  => GLuint
                  -> Natural
                  -> Natural
@@ -195,7 +195,7 @@
 
 -- |Typeclass of possible framebuffer depth attachments.
 class FramebufferDepthAttachment d where
-  addDepthOutput :: (MonadIO m,MonadResource m)
+  addDepthOutput :: (MonadResource m)
                  => GLuint
                  -> Natural
                  -> Natural
diff --git a/src/Graphics/Luminance/Core/Shader/Program.hs b/src/Graphics/Luminance/Core/Shader/Program.hs
--- a/src/Graphics/Luminance/Core/Shader/Program.hs
+++ b/src/Graphics/Luminance/Core/Shader/Program.hs
@@ -76,7 +76,7 @@
 --
 -- In the end, you get the new 'Program' and a polymorphic value you can choose the type of in
 -- the function you pass as argument. You can use that value to gather uniforms for instance.
-createProgram :: (HasProgramError e,MonadError e m,MonadIO m,MonadResource m)
+createProgram :: (HasProgramError e,MonadError e m,MonadResource m)
               => [Stage]
               -> ((forall a. UniformName a -> UniformInterface m (U a)) -> UniformInterface m i)
               -> m (Program i)
diff --git a/src/Graphics/Luminance/Core/Shader/Stage.hs b/src/Graphics/Luminance/Core/Shader/Stage.hs
--- a/src/Graphics/Luminance/Core/Shader/Stage.hs
+++ b/src/Graphics/Luminance/Core/Shader/Stage.hs
@@ -54,7 +54,7 @@
 --
 -- Note: on some hardware and backends, /tessellation shaders/ aren’t available. That function
 -- throws 'UnsupportedStage' error in such cases.
-createStage :: (HasStageError e,MonadError e m,MonadIO m,MonadResource m)
+createStage :: (HasStageError e,MonadError e m,MonadResource m)
             => StageType
             -> String
             -> m Stage
@@ -72,7 +72,7 @@
         fromStageError (UnsupportedStage stageType)
 
 -- Create a shader from the kind of shader and its source code 'String' representation.
-mkShader :: (HasStageError e,MonadError e m,MonadIO m,MonadResource m)
+mkShader :: (HasStageError e,MonadError e m,MonadResource m)
          => StageType 
          -> String
          -> m Stage
