diff --git a/binary-strict.cabal b/binary-strict.cabal
--- a/binary-strict.cabal
+++ b/binary-strict.cabal
@@ -1,5 +1,5 @@
 name:            binary-strict
-version:         0.4.8.2
+version:         0.4.8.3
 license:         BSD3
 license-file:    LICENSE
 author:          Lennart Kolmodin <kolmodin@dtek.chalmers.se>
@@ -16,7 +16,7 @@
 category:        Data, Parsing
 build-depends:   base<5, containers, array, bytestring>=0.9
 stability:       provisional
-tested-with:     GHC == 7.8.3
+tested-with:     GHC == 7.10.2
 exposed-modules: Data.Binary.BitPut
                  Data.Binary.Strict.ByteSet
                  Data.Binary.Strict.BitGet,
@@ -31,4 +31,4 @@
 extra-source-files: tests/BitGetTest.hs, src/Data/Binary/Strict/Common.h
 ghc-options:     -Wall -fno-warn-name-shadowing
 build-type:      Simple
-build-depends:   mtl >= 2.1 && <2.2
+build-depends:   mtl >= 2.1 && <2.3
diff --git a/src/Data/Binary/BitBuilder.hs b/src/Data/Binary/BitBuilder.hs
--- a/src/Data/Binary/BitBuilder.hs
+++ b/src/Data/Binary/BitBuilder.hs
@@ -53,7 +53,7 @@
 import Data.Binary.Strict.BitUtil
 
 #if defined(__GLASGOW_HASKELL__) && !defined(__HADDOCK__)
-import GHC.Base
+import GHC.Base hiding ( empty, foldr )
 #endif
 
 ------------------------------------------------------------------------
diff --git a/src/Data/Binary/BitPut.hs b/src/Data/Binary/BitPut.hs
--- a/src/Data/Binary/BitPut.hs
+++ b/src/Data/Binary/BitPut.hs
@@ -49,6 +49,10 @@
 instance Functor BitPutM where
    fmap f m = BitPutM (let (a, w) = unPut m in (f a, w))
 
+instance Applicative BitPutM where
+  pure  = return
+  (<*>) = ap
+
 instance Monad BitPutM where
    return a = BitPutM (a,BB.empty)
    m >>= k = BitPutM (let (a, w) = unPut m
@@ -100,6 +104,10 @@
    fmap f m = BitPutT $ do
       ~(x, w) <- unPutT m
       return (f x, w)
+
+instance Monad m => Applicative (BitPutT m) where
+  pure  = return
+  (<*>) = ap
 
 instance Monad m => Monad (BitPutT m) where
    return a = BitPutT $ return (a, BB.empty)
diff --git a/src/Data/Binary/Strict/BitGet.hs b/src/Data/Binary/Strict/BitGet.hs
--- a/src/Data/Binary/Strict/BitGet.hs
+++ b/src/Data/Binary/Strict/BitGet.hs
@@ -78,6 +78,13 @@
 
 newtype BitGet a = BitGet { unGet :: S -> (Either String a, S) }
 
+instance Functor BitGet where
+  fmap = liftM
+
+instance Applicative BitGet where
+  pure  = return
+  (<*>) = ap
+
 instance Monad BitGet where
   return a = BitGet (\s -> (Right a, s))
   m >>= k = BitGet (\s -> case unGet m s of
