diff --git a/hpack-convert.cabal b/hpack-convert.cabal
--- a/hpack-convert.cabal
+++ b/hpack-convert.cabal
@@ -1,9 +1,9 @@
--- This file has been generated from package.yaml by hpack version 0.14.0.
+-- This file has been generated from package.yaml by hpack version 0.17.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:           hpack-convert
-version:        0.14.6
+version:        0.14.7
 synopsis:       Convert Cabal manifests into hpack's package.yamls
 category:       Development
 homepage:       https://github.com/yamadapc/hpack-convert#readme
@@ -72,7 +72,7 @@
     , yaml
     , bytestring
     , vector
-    , aeson == 0.11.*
+    , aeson
   exposed-modules:
       Hpack
       Hpack.Convert
@@ -109,7 +109,7 @@
     , yaml
     , bytestring
     , vector
-    , aeson == 0.11.*
+    , aeson
     , hpack-convert
   default-language: Haskell2010
 
@@ -118,7 +118,7 @@
   main-is: Spec.hs
   hs-source-dirs:
       test
-    , src
+      src
   ghc-options: -Wall -fcontext-stack=100
   cpp-options: -DTEST
   build-depends:
@@ -136,7 +136,7 @@
     , yaml
     , bytestring
     , vector
-    , aeson == 0.11.*
+    , aeson
     , hspec == 2.*
     , QuickCheck
     , temporary
diff --git a/src/Hpack/Config.hs b/src/Hpack/Config.hs
--- a/src/Hpack/Config.hs
+++ b/src/Hpack/Config.hs
@@ -118,7 +118,11 @@
                                   , omitNothingFields = True
                                   }
 
+#if MIN_VERSION_aeson(1,0,0)
+genericToJSON_ :: forall a. (Generic a, GToJSON Zero (Rep a), HasTypeName a) => a -> Value
+#else
 genericToJSON_ :: forall a. (Generic a, GToJSON (Rep a), HasTypeName a) => a -> Value
+#endif
 genericToJSON_ =
     removeEmptyObjects .
     removeEmptyArrays .
@@ -135,7 +139,11 @@
 removeEmptyArrays (Object o) = Object $ HashMap.filter (/= Array mempty) o
 removeEmptyArrays v = v
 
+#if MIN_VERSION_aeson(1,0,0)
+genericParseJSON_ :: forall a. (Generic a, GFromJSON Zero (Rep a), HasTypeName a) => Value -> Parser a
+#else
 genericParseJSON_ :: forall a. (Generic a, GFromJSON (Rep a), HasTypeName a) => Value -> Parser a
+#endif
 genericParseJSON_ = genericParseJSON (jsonOptions name)
   where
     name :: String
@@ -451,7 +459,11 @@
 mergeObjects _ (Object o2) = Object o2
 mergeObjects v _ = v
 
-instance ToJSON [Section Executable] where
+#if __GLASGOW_HASKELL__ >= 710
+instance {-# OVERLAPS #-} ToJSON [Section Executable] where
+#else
+instance  ToJSON [Section Executable] where
+#endif
   toJSON ss = Object $
       HashMap.fromList $ map helper ss
     where
@@ -487,8 +499,13 @@
           s {sectionBuildable = Nothing}
       omitRedundantBuildable s = s
 
+#if MIN_VERSION_aeson(1,0,0)
+instance (Generic (Section a), GToJSON Zero (Rep (Section a)), HasTypeName (Section a),
+          ToJSON a) => ToJSON (Section a) where
+#else
 instance (Generic (Section a), GToJSON (Rep (Section a)), HasTypeName (Section a),
           ToJSON a) => ToJSON (Section a) where
+#endif
   toJSON sect@Section{..} =
     omitBuildableTrue (omitSection
       (mergeObjects
@@ -545,7 +562,11 @@
 instance ToJSON Library where
   toJSON = genericToJSON_
 
+#if __GLASGOW_HASKELL__ >= 710
+instance {-# OVERLAPS #-} ToJSON [Flag] where
+#else
 instance ToJSON [Flag] where
+#endif
   toJSON fs = Object $
       HashMap.fromList $ map helper fs
     where
