diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,9 @@
+
+0.0.3.3
+
+* add upper bound to `errors` dependency
+* support ghc-7.10.1
+
 0.0.3.2
 
 * support 1- and 2-digit escapes sequence in literal string
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/Core/IO.hs b/lib/Pdf/Toolbox/Core/IO.hs
--- a/lib/Pdf/Toolbox/Core/IO.hs
+++ b/lib/Pdf/Toolbox/Core/IO.hs
@@ -22,7 +22,6 @@
 where
 
 import Data.Int
-import Data.Functor
 import Data.Attoparsec.ByteString (Parser)
 import Data.ByteString (ByteString)
 import Control.Monad.IO.Class
diff --git a/lib/Pdf/Toolbox/Core/IO/RIS.hs b/lib/Pdf/Toolbox/Core/IO/RIS.hs
--- a/lib/Pdf/Toolbox/Core/IO/RIS.hs
+++ b/lib/Pdf/Toolbox/Core/IO/RIS.hs
@@ -16,7 +16,6 @@
 where
 
 import Data.Int (Int64)
-import Data.Functor
 import Data.ByteString (ByteString)
 import qualified Data.ByteString as BS
 import Data.IORef
diff --git a/lib/Pdf/Toolbox/Core/Object/Builder.hs b/lib/Pdf/Toolbox/Core/Object/Builder.hs
--- a/lib/Pdf/Toolbox/Core/Object/Builder.hs
+++ b/lib/Pdf/Toolbox/Core/Object/Builder.hs
@@ -18,7 +18,6 @@
 )
 where
 
-import Data.Monoid
 import Data.Char
 import qualified Data.ByteString as BS
 import qualified Data.ByteString.Char8 as BS8
diff --git a/lib/Pdf/Toolbox/Core/Object/Types.hs b/lib/Pdf/Toolbox/Core/Object/Types.hs
--- a/lib/Pdf/Toolbox/Core/Object/Types.hs
+++ b/lib/Pdf/Toolbox/Core/Object/Types.hs
@@ -18,7 +18,6 @@
 )
 where
 
-import Data.Monoid
 import Data.String
 import Data.ByteString (ByteString)
 
diff --git a/lib/Pdf/Toolbox/Core/Parsers/Object.hs b/lib/Pdf/Toolbox/Core/Parsers/Object.hs
--- a/lib/Pdf/Toolbox/Core/Parsers/Object.hs
+++ b/lib/Pdf/Toolbox/Core/Parsers/Object.hs
@@ -115,7 +115,7 @@
                else takeStr (lvl - 1) (ch : res)
       '\\' -> do
         ch' <- P.anyChar
-        if ch' `elem` "()\\"
+        if ch' `elem` ("()\\" :: String)
           then takeStr lvl (ch' : res)
           else case ch' of
                  'r' -> takeStr lvl ('\r' : res)
@@ -185,7 +185,7 @@
 
 -- | Whether the character can appear in 'Name'
 isRegularChar :: Char -> Bool
-isRegularChar = (`notElem` "[]()/<>{}% \n\r")
+isRegularChar = (`notElem` ("[]()/<>{}% \n\r" :: String))
 
 -- |
 -- >>> parseOnly parseBoolean "true"
diff --git a/lib/Pdf/Toolbox/Core/Writer.hs b/lib/Pdf/Toolbox/Core/Writer.hs
--- a/lib/Pdf/Toolbox/Core/Writer.hs
+++ b/lib/Pdf/Toolbox/Core/Writer.hs
@@ -37,8 +37,6 @@
 #endif
 
 import Data.Function
-import Data.Monoid
-import Control.Applicative
 import Control.Monad
 import Control.Monad.Trans.Class
 import Control.Monad.Trans.State
diff --git a/pdf-toolbox-core.cabal b/pdf-toolbox-core.cabal
--- a/pdf-toolbox-core.cabal
+++ b/pdf-toolbox-core.cabal
@@ -1,5 +1,5 @@
 name:                pdf-toolbox-core
-version:             0.0.3.2
+version:             0.0.3.3
 synopsis:            A collection of tools for processing PDF files.
 license:             BSD3
 license-file:        LICENSE
@@ -30,6 +30,7 @@
 
 library
   hs-source-dirs:      lib
+                       compat
   exposed-modules:     Pdf.Toolbox.Core
                        Pdf.Toolbox.Core.IO
                        Pdf.Toolbox.Core.IO.RIS
@@ -46,13 +47,13 @@
                        Pdf.Toolbox.Core.XRef
                        Pdf.Toolbox.Core.Util
                        Pdf.Toolbox.Core.Writer
-  -- other-modules:       
-  build-depends:       base >= 4.6 && < 4.8,
+  other-modules:       Prelude
+  build-depends:       base >= 4.6 && < 5,
                        bytestring,
                        io-streams,
                        attoparsec >= 0.10,
                        scientific,
-                       errors,
+                       errors < 2.0,
                        transformers,
                        containers,
                        zlib-bindings
