diff --git a/dependent-map.cabal b/dependent-map.cabal
--- a/dependent-map.cabal
+++ b/dependent-map.cabal
@@ -1,5 +1,5 @@
 name:                   dependent-map
-version:                0.1.1.1
+version:                0.1.1.2
 stability:              provisional
 
 cabal-version:          >= 1.6
@@ -13,7 +13,9 @@
 
 category:               Data, Dependent Types
 synopsis:               Dependent finite maps (partial dependent products)
-description:            Dependent finite maps (partial dependent products)
+description:            Provides a type called @DMap@ which generalizes
+                        @Data.Map.Map@, allowing keys to specify the type
+                        of value that can be associated with them.
 
 tested-with:            GHC == 7.2.1,
                         GHC == 7.0.4,
@@ -29,8 +31,9 @@
   ghc-options:          -fwarn-unused-imports -fwarn-unused-binds
   exposed-modules:      Data.Dependent.Map
   other-modules:        Data.Dependent.Map.Internal
-                        Data.Dependent.Map.Typeable
-  build-depends:        base >= 3 && < 5, containers, dependent-sum
+  if impl(ghc < 7.8)
+    other-modules:      Data.Dependent.Map.Typeable
+  build-depends:        base >= 3 && < 5, containers, dependent-sum == 0.2.*
   if impl(ghc >= 7.2)
-    build-depends:      dependent-sum >= 0.2.0.1
+    build-depends:      dependent-sum >= 0.2.0.1 && < 0.3
     ghc-options:        -trust base -trust dependent-sum
diff --git a/src/Data/Dependent/Map.hs b/src/Data/Dependent/Map.hs
--- a/src/Data/Dependent/Map.hs
+++ b/src/Data/Dependent/Map.hs
@@ -132,7 +132,9 @@
 
 import Prelude hiding (null, lookup)
 import Data.Dependent.Map.Internal
+#if !MIN_VERSION_base(4,7,0)
 import Data.Dependent.Map.Typeable ({- instance Typeable ... -})
+#endif
 
 import Data.Dependent.Sum
 import Data.GADT.Compare
diff --git a/src/Data/Dependent/Map/Internal.hs b/src/Data/Dependent/Map/Internal.hs
--- a/src/Data/Dependent/Map/Internal.hs
+++ b/src/Data/Dependent/Map/Internal.hs
@@ -1,4 +1,6 @@
 {-# LANGUAGE GADTs #-}
+{-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE ImpredicativeTypes #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE CPP #-}
 #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 702
@@ -9,6 +11,9 @@
 import Data.Dependent.Sum
 import Data.GADT.Compare
 import Data.GADT.Show
+#if MIN_VERSION_base(4,7,0)
+import Data.Typeable (Typeable)
+#endif
 
 -- |A 'Key' is just a wrapper for the true key type @f@ which hides
 -- the associated value type and presents the key's GADT-level 'GCompare' 
@@ -52,6 +57,9 @@
         -> {- left  -} !(DMap k)
         -> {- right -} !(DMap k)
         -> DMap k
+#if MIN_VERSION_base(4,7,0)
+    deriving Typeable
+#endif
 
 {--------------------------------------------------------------------
   Construction
