diff --git a/CHANGELOG b/CHANGELOG
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,13 @@
 # Changelog for Hedis
 
+## 0.12.9
+
+* Expose the `Database.Redis.Core.Internal` module (see https://github.com/informatikr/hedis/issues/144 )
+
+## 0.12.8
+
+* PR #140. Added support of +/- inf redis argument
+
 ## 0.12.7
 
 * PR #139.  fix MonadFail instance
diff --git a/hedis.cabal b/hedis.cabal
--- a/hedis.cabal
+++ b/hedis.cabal
@@ -1,5 +1,5 @@
 name:               hedis
-version:            0.12.8
+version:            0.12.9
 synopsis:
     Client library for the Redis datastore: supports full command set,
     pipelining.
@@ -67,6 +67,7 @@
   if flag(dev)
     ghc-prof-options: -auto-all
   exposed-modules:  Database.Redis
+                  , Database.Redis.Core.Internal
   build-depends:    scanner >= 0.2,
                     async >= 2.1,
                     base >= 4.8 && < 5,
diff --git a/src/Database/Redis/Core.hs b/src/Database/Redis/Core.hs
--- a/src/Database/Redis/Core.hs
+++ b/src/Database/Redis/Core.hs
@@ -17,9 +17,6 @@
 import Control.Applicative
 #endif
 import Control.Exception
-#if __GLASGOW_HASKELL__ > 711
-import Control.Monad.Fail (MonadFail)
-#endif
 import Control.Monad.Reader
 import qualified Data.ByteString as B
 import Data.IORef
@@ -28,7 +25,7 @@
 import Data.Typeable
 import qualified Network.Socket as NS
 import Network.TLS (ClientParams)
-
+import Database.Redis.Core.Internal
 import Database.Redis.Protocol
 import qualified Database.Redis.ProtocolPipelining as PP
 import Database.Redis.Types
@@ -37,20 +34,6 @@
 --------------------------------------------------------------------------------
 -- The Redis Monad
 --
-
--- |Context for normal command execution, outside of transactions. Use
---  'runRedis' to run actions of this type.
---
---  In this context, each result is wrapped in an 'Either' to account for the
---  possibility of Redis returning an 'Error' reply.
-newtype Redis a = Redis (ReaderT RedisEnv IO a)
-    deriving (Monad, MonadIO, Functor, Applicative)
-
-#if __GLASGOW_HASKELL__ > 711
-deriving instance MonadFail Redis
-#endif
-
-data RedisEnv = Env { envConn :: PP.Connection, envLastReply :: IORef Reply }
 
 -- |This class captures the following behaviour: In a context @m@, a command
 --  will return its result wrapped in a \"container\" of type @f@.
diff --git a/src/Database/Redis/Core/Internal.hs b/src/Database/Redis/Core/Internal.hs
new file mode 100644
--- /dev/null
+++ b/src/Database/Redis/Core/Internal.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+
+module Database.Redis.Core.Internal where
+#if __GLASGOW_HASKELL__ > 711
+import Control.Monad.Fail (MonadFail)
+#endif
+import Control.Monad.Reader
+import Data.IORef
+import Database.Redis.Protocol
+import qualified Database.Redis.ProtocolPipelining as PP
+
+-- |Context for normal command execution, outside of transactions. Use
+--  'runRedis' to run actions of this type.
+--
+--  In this context, each result is wrapped in an 'Either' to account for the
+--  possibility of Redis returning an 'Error' reply.
+newtype Redis a =
+  Redis (ReaderT RedisEnv IO a)
+  deriving (Monad, MonadIO, Functor, Applicative)
+#if __GLASGOW_HASKELL__ > 711
+deriving instance MonadFail Redis
+#endif
+data RedisEnv =
+  Env
+    { envConn :: PP.Connection
+    , envLastReply :: IORef Reply
+    }
