diff --git a/haskell-names.cabal b/haskell-names.cabal
--- a/haskell-names.cabal
+++ b/haskell-names.cabal
@@ -1,5 +1,5 @@
 Name:                   haskell-names
-Version:                0.1.1
+Version:                0.1.2
 License:                BSD3
 Author:                 Roman Cheplyaka, Lennart Augustsson
 Maintainer:             Roman Cheplyaka <roma@ro-che.info>
@@ -232,7 +232,7 @@
 source-repository this
   type:     git
   location: git://github.com/haskell-suite/haskell-names.git
-  tag:      v0.1.1
+  tag:      v0.1.2
 
 Library
   Default-Language: Haskell2010
@@ -252,7 +252,7 @@
     , tagged
     , traverse-with-class
     , type-eq
-    , Cabal
+    , Cabal >= 1.16 && < 1.20
   Hs-source-dirs:       src
   Ghc-options:          -Wall -fno-warn-name-shadowing
 
diff --git a/src/Language/Haskell/Names/Types.hs b/src/Language/Haskell/Names/Types.hs
--- a/src/Language/Haskell/Names/Types.hs
+++ b/src/Language/Haskell/Names/Types.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE DeriveDataTypeable, DeriveFunctor, DeriveFoldable,
-             DeriveTraversable #-}
+             DeriveTraversable, StandaloneDeriving, CPP #-}
 module Language.Haskell.Names.Types where
 
 import Language.Haskell.Exts.Annotated
@@ -9,7 +9,8 @@
 import Data.Lens.Common
 import qualified Data.Set as Set
 import {-# SOURCE #-} qualified Language.Haskell.Names.GlobalSymbolTable as Global
-import Distribution.Package (PackageId)
+import Distribution.Package
+import Data.Version
 import Distribution.Text
 import Data.Foldable as F
 import Data.Traversable
@@ -125,6 +126,14 @@
 -- | Display a 'GName'
 ppGName :: GName -> String
 ppGName (GName mod name) = printf "%s.%s" mod name
+
+#if ! MIN_VERSION_Cabal(1,17,0)
+deriving instance Typeable PackageIdentifier
+deriving instance Data PackageIdentifier
+deriving instance Typeable PackageName
+deriving instance Data PackageName
+deriving instance Data Version
+#endif
 
 -- | Qualified name, where 'ModuleNameS' points to the module where the
 -- name was originally defined. The module part is never empty.
