diff --git a/dtab.cabal b/dtab.cabal
--- a/dtab.cabal
+++ b/dtab.cabal
@@ -1,5 +1,5 @@
 name:               dtab
-version:            1.0
+version:            1.0.0.1
 synopsis:           Harmonix (Guitar Hero, Rock Band) DTA/DTB metadata library
 description:
 
@@ -17,14 +17,14 @@
 
 library
   build-depends:
-    base                  >= 4.6      && < 4.8
-    , bytestring          >= 0.10.4.0 && < 0.11
+    base                  >= 4.6      && < 4.9
+    , bytestring          >= 0.10.0.2 && < 0.11
     , transformers        >= 0.3.0.0  && < 0.5
     , data-binary-ieee754 >= 0.4.4    && < 0.5
-    , binary              >= 0.7.1.0  && < 0.8
-    , array               >= 0.5.0.0  && < 0.6
-    , pretty              >= 1.1.1.1  && < 1.2
-    , containers          >= 0.5.5.1  && < 0.6
+    , binary              >= 0.5.1.1  && < 0.8
+    , array               >= 0.4.0.1  && < 0.6
+    , pretty              >= 1.1.1.0  && < 1.2
+    , containers          >= 0.5.0.0  && < 0.6
   exposed-modules:
     Data.DTA
     Data.DTA.Crypt
@@ -39,12 +39,13 @@
   hs-source-dirs:     src
   ghc-options:        -Wall
   default-language:   Haskell2010
+  build-tools:        alex, happy
 
 Executable dtab
   build-depends:
-    base         >= 4.6      && < 4.8
-    , bytestring >= 0.10.4.0 && < 0.11
-    , dtab       == 1.0
+    base         >= 4.6      && < 4.9
+    , bytestring >= 0.10.0.2 && < 0.11
+    , dtab       == 1.0.0.1
   other-modules:      Paths_dtab
   Main-Is:            Main.hs
   ghc-options:        -Wall
diff --git a/src/Data/DTA.hs b/src/Data/DTA.hs
--- a/src/Data/DTA.hs
+++ b/src/Data/DTA.hs
@@ -1,5 +1,6 @@
 -- | All functions that take a 'Handle' or 'FilePath' do their reading/writing
 -- strictly.
+{-# LANGUAGE CPP #-}
 module Data.DTA
 ( DTA(..), Tree(..), Chunk(..)
 , lFromDTB, hFromDTB, fromDTB
@@ -9,7 +10,9 @@
 , renumberFrom
 ) where
 
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative ((<$>))
+#endif
 import System.IO (withFile, Handle, IOMode(ReadMode, WriteMode))
 
 import Data.Binary (decode, encode)
diff --git a/src/Data/DTA/Base.hs b/src/Data/DTA/Base.hs
--- a/src/Data/DTA/Base.hs
+++ b/src/Data/DTA/Base.hs
@@ -1,10 +1,14 @@
 {-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE CPP #-}
 module Data.DTA.Base
 ( DTA(..), Tree(..), Chunk(..)
 , renumberFrom
 ) where
 
-import Control.Applicative ((<$>), liftA2)
+#if __GLASGOW_HASKELL__ < 710
+import Control.Applicative ((<$>))
+#endif
+import Control.Applicative (liftA2)
 import Control.Monad (replicateM)
 import qualified Data.ByteString as B
 import Data.Data (Data)
diff --git a/src/Data/DTA/Serialize/Magma.hs b/src/Data/DTA/Serialize/Magma.hs
--- a/src/Data/DTA/Serialize/Magma.hs
+++ b/src/Data/DTA/Serialize/Magma.hs
@@ -1,7 +1,10 @@
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP #-}
 module Data.DTA.Serialize.Magma where
 
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative ((<$>), (<*>))
+#endif
 import Control.Monad ((>=>))
 
 import qualified Data.ByteString.Char8 as B8
diff --git a/src/Data/DTA/Serialize/RB3.hs b/src/Data/DTA/Serialize/RB3.hs
--- a/src/Data/DTA/Serialize/RB3.hs
+++ b/src/Data/DTA/Serialize/RB3.hs
@@ -1,7 +1,10 @@
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP #-}
 module Data.DTA.Serialize.RB3 where
 
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative ((<$>), (<*>))
+#endif
 import Control.Monad ((>=>))
 
 import qualified Data.ByteString.Char8 as B8
