diff --git a/leveldb-haskell.cabal b/leveldb-haskell.cabal
--- a/leveldb-haskell.cabal
+++ b/leveldb-haskell.cabal
@@ -1,5 +1,5 @@
 name:                leveldb-haskell
-version:             0.3.0
+version:             0.3.1
 synopsis:            Haskell bindings to LevelDB
 homepage:            http://github.com/kim/leveldb-haskell
 bug-reports:         http://github.com/kim/leveldb-haskell/issues
@@ -12,7 +12,7 @@
 stability:           Experimental
 build-type:          Simple
 cabal-version:       >=1.10
-tested-with:         GHC == 7.2.2, GHC == 7.4.1, GHC == 7.6.3
+tested-with:         GHC == 7.4.2, GHC == 7.6.4, GHC == 7.8.3
 description:
     From <http://leveldb.googlecode.com>:
     .
@@ -48,10 +48,6 @@
                   , Database.LevelDB.Types
 
   default-language: Haskell2010
-  other-extensions: CPP
-                  , ForeignFunctionInterface
-                  , EmptyDataDecls
-                  , RecordWildCards
 
   build-depends:    base >= 3 && < 5
                   , bytestring
@@ -65,7 +61,7 @@
 
   hs-source-dirs:   src
 
-  extra-libraries:  leveldb
+  extra-libraries:  leveldb, snappy, stdc++
 
 executable leveldb-example-comparator
   main-is:          comparator.hs
@@ -99,7 +95,7 @@
                   , data-default
                   , leveldb-haskell
 
-  ghc-options:      -Wall -Werror -O -rtsopts
+  ghc-options:      -Wall -O -rtsopts
   ghc-prof-options: -prof -auto-all
 
   hs-source-dirs:   examples
diff --git a/src/Database/LevelDB/C.hsc b/src/Database/LevelDB/C.hsc
--- a/src/Database/LevelDB/C.hsc
+++ b/src/Database/LevelDB/C.hsc
@@ -1,7 +1,10 @@
-{-# LANGUAGE CPP, ForeignFunctionInterface, EmptyDataDecls #-}
+{-# LANGUAGE CPP                      #-}
+{-# LANGUAGE EmptyDataDecls           #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+
 -- |
 -- Module      : Database.LevelDB.C
--- Copyright   : (c) 2012-2013 The leveldb-haskell Authors
+-- Copyright   : (c) 2012-2014 The leveldb-haskell Authors
 -- License     : BSD3
 -- Maintainer  : kim.altintop@gmail.com
 -- Stability   : experimental
diff --git a/src/Database/LevelDB/Iterator.hs b/src/Database/LevelDB/Iterator.hs
--- a/src/Database/LevelDB/Iterator.hs
+++ b/src/Database/LevelDB/Iterator.hs
@@ -184,6 +184,7 @@
                 val <- f iter
                 ()  <- liftIO $ c_leveldb_iter_next iter_ptr
                 go (val : acc)
+{-# DEPRECATED mapIter "will be removed in the next release" #-}
 
 -- | Return a list of key and value tuples from an iterator. The iterator
 -- should be put in the right position prior to calling this with the iterator.
@@ -191,6 +192,7 @@
 -- See strictness remarks on 'mapIter'.
 iterItems :: (Functor m, MonadIO m) => Iterator -> m [(ByteString, ByteString)]
 iterItems iter = catMaybes <$> mapIter iterEntry iter
+{-# DEPRECATED iterItems "will be removed in the next release" #-}
 
 -- | Return a list of key from an iterator. The iterator should be put
 -- in the right position prior to calling this with the iterator.
@@ -198,6 +200,7 @@
 -- See strictness remarks on 'mapIter'
 iterKeys :: (Functor m, MonadIO m) => Iterator -> m [ByteString]
 iterKeys iter = catMaybes <$> mapIter iterKey iter
+{-# DEPRECATED iterKeys "will be removed in the next release" #-}
 
 -- | Return a list of values from an iterator. The iterator should be put
 -- in the right position prior to calling this with the iterator.
@@ -205,6 +208,7 @@
 -- See strictness remarks on 'mapIter'
 iterValues :: (Functor m, MonadIO m) => Iterator -> m [ByteString]
 iterValues iter = catMaybes <$> mapIter iterValue iter
+{-# DEPRECATED iterValues "will be removed in the next release" #-}
 
 
 --
diff --git a/src/Database/LevelDB/MonadResource.hs b/src/Database/LevelDB/MonadResource.hs
--- a/src/Database/LevelDB/MonadResource.hs
+++ b/src/Database/LevelDB/MonadResource.hs
@@ -256,6 +256,7 @@
 -- an example see: <https://gist.github.com/adc8ec348f03483446a5>
 mapIter :: MonadResource m => (Iterator -> m a) -> Iterator -> m [a]
 mapIter = Base.mapIter
+{-# DEPRECATED mapIter "will be removed in the next release" #-}
 
 -- | Return a list of key and value tuples from an iterator. The iterator
 -- should be put in the right position prior to calling this with the iterator.
@@ -263,6 +264,7 @@
 -- See strictness remarks on 'mapIter'.
 iterItems :: MonadResource m => Iterator -> m [(ByteString, ByteString)]
 iterItems = Base.iterItems
+{-# DEPRECATED iterItems "will be removed in the next release" #-}
 
 -- | Return a list of key from an iterator. The iterator should be put
 -- in the right position prior to calling this with the iterator.
@@ -270,6 +272,7 @@
 -- See strictness remarks on 'mapIter'
 iterKeys :: MonadResource m => Iterator -> m [ByteString]
 iterKeys = Base.iterKeys
+{-# DEPRECATED iterKeys "will be removed in the next release" #-}
 
 -- | Return a list of values from an iterator. The iterator should be put
 -- in the right position prior to calling this with the iterator.
@@ -277,6 +280,7 @@
 -- See strictness remarks on 'mapIter'
 iterValues :: MonadResource m => Iterator -> m [ByteString]
 iterValues = Base.iterValues
+{-# DEPRECATED iterValues "will be removed in the next release" #-}
 
 
 -- | Return the runtime version of the underlying LevelDB library as a (major,
