diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,7 @@
 # CHANGELOG
 
+## 0.0.2
+Make it compilable on base-4.7
+
 ## 0.0.1
 First working version
diff --git a/hreader.cabal b/hreader.cabal
--- a/hreader.cabal
+++ b/hreader.cabal
@@ -1,5 +1,5 @@
 name:                hreader
-version:             0.0.1
+version:             0.0.2
 synopsis:            Generalization of MonadReader and ReaderT
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/Control/Monad/HReader.hs b/src/Control/Monad/HReader.hs
--- a/src/Control/Monad/HReader.hs
+++ b/src/Control/Monad/HReader.hs
@@ -1,4 +1,8 @@
-module Control.Monad.HReader where
+module Control.Monad.HReader
+       ( HReaderT(..)
+       , runHReaderT
+       , module Control.Monad.HReader.Class
+       ) where
 
 import Control.Monad.Base
 import Control.Monad.Catch
@@ -19,6 +23,11 @@
 import Control.Monad.Error
 #endif
 
+#if !(MIN_VERSION_base(4,8,0))
+import Control.Applicative
+#endif
+
+
 newtype HReaderT els m a = HReaderT
     { unHReaderT :: ReaderT (HSet els) m a
     } deriving ( Functor, Applicative, Monad, MonadIO
@@ -27,8 +36,8 @@
                , MonadThrow, MonadCatch
                , Typeable, Generic  )
 
-runUnversalT :: HSet els -> HReaderT els m a -> m a
-runUnversalT h (HReaderT r) = runReaderT r h
+runHReaderT :: HSet els -> HReaderT els m a -> m a
+runHReaderT h (HReaderT r) = runReaderT r h
 
 instance MonadTrans (HReaderT els) where
   lift = HReaderT . lift
@@ -38,7 +47,7 @@
   local f ma = HReaderT $ do
     h <- ask
     lift $ do
-      local f $ runUnversalT h ma
+      local f $ runHReaderT h ma
 
 instance (Monad m) => MonadHReader (HReaderT els m) where
   type HSetElements (HReaderT els m) = els
diff --git a/src/Control/Monad/HReader/Class.hs b/src/Control/Monad/HReader/Class.hs
--- a/src/Control/Monad/HReader/Class.hs
+++ b/src/Control/Monad/HReader/Class.hs
@@ -1,5 +1,10 @@
-module Control.Monad.HReader.Class where
+module Control.Monad.HReader.Class
+       ( MonadHReader(..)
+       , haskM
+       , haskLabeledM
+       ) where
 
+
 import Control.Monad.Cont
 import Control.Monad.List
 import Control.Monad.Reader
@@ -9,6 +14,12 @@
 import Control.Monad.Except
 #endif
 
+#if !(MIN_VERSION_base(4,8,0))
+import Control.Applicative
+import Data.Monoid
+#endif
+
+
 import qualified Control.Monad.RWS.Lazy   as RWSL
 import qualified Control.Monad.RWS.Strict as RWSS
 import qualified Control.Monad.State.Lazy   as SL
@@ -17,6 +28,7 @@
 import qualified Control.Monad.Writer.Strict as WS
 
 
+-- | Monad which is a reader of HSet (or just can construct it).
 #if MIN_VERSION_base(4, 8, 0)
 class (Monad m) => MonadHReader m where
 #else
