diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+### 0.8.2.1
+
+- Removed the `MonadIO` constraint on `createGeometry` as it’s already brought by `MonadResource`.
+- Clean some code about `createGeometry` conditional (gl32 / gl45).
+
 ### 0.8.2
 
 - Exposed `SomeUniformName`.
diff --git a/luminance.cabal b/luminance.cabal
--- a/luminance.cabal
+++ b/luminance.cabal
@@ -1,5 +1,5 @@
 name:                luminance
-version:             0.8.2
+version:             0.8.2.1
 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
diff --git a/src/Graphics/Luminance/Core/Geometry.hs b/src/Graphics/Luminance/Core/Geometry.hs
--- a/src/Graphics/Luminance/Core/Geometry.hs
+++ b/src/Graphics/Luminance/Core/Geometry.hs
@@ -73,12 +73,12 @@
 -- If you don’t pass indices ('Nothing'), you end up with a /direct geometry/. Otherwise, you get an
 -- /indexed geometry/. You also have to provide a 'GeometryMode' to state how you want the vertices
 -- to be connected with each other.
-#ifdef __GL45
-createGeometry :: forall f m v. (Foldable f,MonadIO m,MonadResource m,Storable v,Vertex v)
+createGeometry :: forall f m v. (Foldable f,MonadResource m,Storable v,Vertex v)
                => f v
                -> Maybe (f Word32)
                -> GeometryMode
                -> m Geometry
+#ifdef __GL45
 createGeometry vertices indices mode = do
     -- create the vertex array object (OpenGL-side)
     vid <- liftIO . alloca $ \p -> do
@@ -103,11 +103,6 @@
     vertNb = length vertices
     mode'  = fromGeometryMode mode
 #elif defined(__GL32)
-createGeometry :: forall f m v. (Foldable f,MonadIO m,MonadResource m,Storable v,Vertex v)
-               => f v
-               -> Maybe (f Word32)
-               -> GeometryMode
-               -> m Geometry
 createGeometry vertices indices mode = do
     -- create the vertex array object (OpenGL-side)
     vid <- liftIO . alloca $ \p -> do
