diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.0.5.1
+
+* support ghc-7.10.1
+
 0.0.5.0
 
 * support crypto handler version 4 (V2 and AESV2)
diff --git a/compat/Prelude.hs b/compat/Prelude.hs
new file mode 100644
--- /dev/null
+++ b/compat/Prelude.hs
@@ -0,0 +1,25 @@
+{-# LANGUAGE PackageImports #-}
+{-# LANGUAGE CPP #-}
+
+module Prelude
+(
+  module P,
+
+#if MIN_VERSION_base(4,8,0)
+#else
+  (<$>),
+  Monoid(..),
+  Applicative(..),
+#endif
+
+)
+where
+
+import "base" Prelude as P
+
+#if MIN_VERSION_base(4,8,0)
+#else
+import Data.Functor ((<$>))
+import Data.Monoid(Monoid(..))
+import Control.Applicative (Applicative(..))
+#endif
diff --git a/lib/Pdf/Toolbox/Document/Encryption.hs b/lib/Pdf/Toolbox/Document/Encryption.hs
--- a/lib/Pdf/Toolbox/Document/Encryption.hs
+++ b/lib/Pdf/Toolbox/Document/Encryption.hs
@@ -12,7 +12,6 @@
 )
 where
 
-import Data.Functor
 import Data.Bits (xor)
 import Data.IORef
 import Data.ByteString (ByteString)
diff --git a/lib/Pdf/Toolbox/Document/FontDict.hs b/lib/Pdf/Toolbox/Document/FontDict.hs
--- a/lib/Pdf/Toolbox/Document/FontDict.hs
+++ b/lib/Pdf/Toolbox/Document/FontDict.hs
@@ -12,8 +12,6 @@
 where
 
 import Data.Word
-import Data.Monoid
-import Data.Functor
 import Data.ByteString (ByteString)
 import Control.Monad
 import qualified System.IO.Streams as Streams
diff --git a/lib/Pdf/Toolbox/Document/Page.hs b/lib/Pdf/Toolbox/Document/Page.hs
--- a/lib/Pdf/Toolbox/Document/Page.hs
+++ b/lib/Pdf/Toolbox/Document/Page.hs
@@ -13,8 +13,6 @@
 )
 where
 
-import Data.Monoid
-import Data.Functor
 import qualified Data.Traversable as Traversable
 import Data.Text (Text)
 import qualified Data.Text.Lazy as TextL
diff --git a/lib/Pdf/Toolbox/Document/Pdf.hs b/lib/Pdf/Toolbox/Document/Pdf.hs
--- a/lib/Pdf/Toolbox/Document/Pdf.hs
+++ b/lib/Pdf/Toolbox/Document/Pdf.hs
@@ -21,13 +21,11 @@
 )
 where
 
-import Data.Monoid
 import Data.Int
 import Data.ByteString (ByteString)
 import qualified Data.ByteString as BS
 import Data.Map (Map)
 import qualified Data.Map as Map
-import Control.Applicative
 import Control.Monad
 import Control.Monad.Trans.Class
 import Control.Monad.Trans.State
diff --git a/pdf-toolbox-document.cabal b/pdf-toolbox-document.cabal
--- a/pdf-toolbox-document.cabal
+++ b/pdf-toolbox-document.cabal
@@ -1,5 +1,5 @@
 name:                pdf-toolbox-document
-version:             0.0.5.0
+version:             0.0.5.1
 synopsis:            A collection of tools for processing PDF files.
 license:             BSD3
 license-file:        LICENSE
@@ -22,6 +22,7 @@
 
 library
   hs-source-dirs:      lib
+                       compat
   exposed-modules:     Pdf.Toolbox.Document
                        Pdf.Toolbox.Document.Types
                        Pdf.Toolbox.Document.Monad
@@ -35,7 +36,8 @@
                        Pdf.Toolbox.Document.Encryption
                        Pdf.Toolbox.Document.Internal.Types
                        Pdf.Toolbox.Document.Internal.Util
-  build-depends:       base >= 4.6 && < 4.8,
+  other-modules:       Prelude
+  build-depends:       base >= 4.6 && < 5,
                        transformers,
                        containers,
                        text,
