diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,25 @@
+# Changelog
+
+## [1.0.0.0] - 2021-11-20
+
+### Changed
+
+* Compatibility with `genvalidity >= 1.0.0.0`
+
+## [0.3.0.1] - 2020-02-10
+
+### Changed
+
+* Improved the cabal file
+
+## [0.3.0.0] - 2019-03-06
+
+### Changed
+
+* Compatibility with genvalidity >=0.8
+
+## [0.2.0.4] - 2018-11-07
+
+### Changed
+
+* Compatibility with validity >=0.9 and genvalidity >= 0.7
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c) 2016-2020 Tom Sydney Kerckhove
+Copyright (c) 2016-2021 Tom Sydney Kerckhove
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,3 +0,0 @@
-import Distribution.Simple
-
-main = defaultMain
diff --git a/genvalidity-unordered-containers.cabal b/genvalidity-unordered-containers.cabal
--- a/genvalidity-unordered-containers.cabal
+++ b/genvalidity-unordered-containers.cabal
@@ -1,23 +1,24 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.33.0.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 57a667015c4505ee795b36c3cfdf16b97df24ca29250cce43db4f9d8b4103dac
 
 name:           genvalidity-unordered-containers
-version:        0.3.0.1
+version:        1.0.0.0
 synopsis:       GenValidity support for unordered-containers
 category:       Testing
 homepage:       https://github.com/NorfairKing/validity#readme
 bug-reports:    https://github.com/NorfairKing/validity/issues
 author:         Tom Sydney Kerckhove
 maintainer:     syd@cs-syd.eu
-copyright:      Copyright: (c) 2017-2020 Tom Sydney Kerckhove
+copyright:      Copyright: (c) 2016-2021 Tom Sydney Kerckhove
 license:        MIT
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    LICENSE
+    CHANGELOG.md
 
 source-repository head
   type: git
@@ -35,7 +36,7 @@
   build-depends:
       QuickCheck
     , base <5
-    , genvalidity >=0.8
+    , genvalidity >=1.0
     , hashable
     , unordered-containers
     , validity >=0.5
@@ -53,7 +54,7 @@
   ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
   build-depends:
       base <5
-    , genvalidity >=0.7
+    , genvalidity
     , genvalidity-hspec
     , genvalidity-unordered-containers
     , hspec
diff --git a/src/Data/GenValidity/HashMap.hs b/src/Data/GenValidity/HashMap.hs
--- a/src/Data/GenValidity/HashMap.hs
+++ b/src/Data/GenValidity/HashMap.hs
@@ -1,39 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE CPP #-}
 
 module Data.GenValidity.HashMap where
-#if !MIN_VERSION_base(4,8,0)
-import Control.Applicative (pure)
-import Data.Functor ((<$>))
-#endif
-import Data.GenValidity
-import Data.Validity.HashMap ()
-import Test.QuickCheck
 
+import Data.GenValidity
 import Data.HashMap.Strict (HashMap)
 import qualified Data.HashMap.Strict as HM
 import Data.Hashable (Hashable)
-
-instance (Hashable k, Eq k, GenUnchecked k, GenUnchecked v) =>
-         GenUnchecked (HashMap k v) where
-    genUnchecked = HM.fromList <$> genUnchecked
-    shrinkUnchecked = fmap HM.fromList . shrinkUnchecked . HM.toList
-
-instance (Hashable k, Eq k, GenValid k, GenValid v) =>
-         GenValid (HashMap k v) where
-    genValid = HM.fromList <$> genValid
-    shrinkValid = fmap HM.fromList . shrinkValid . HM.toList
+import Data.Validity.HashMap ()
 
-instance (Hashable k, Eq k, GenUnchecked k, GenInvalid k, GenUnchecked v, GenInvalid v) =>
-         GenInvalid (HashMap k v) where
-    genInvalid =
-        sized $ \n -> do
-            (k, v, m) <- genSplit3 n
-            let go g1 g2 = do
-                    key <- resize k g1
-                    val <- resize v g2
-                    rest <- resize m genUnchecked
-                    pure $ HM.insert key val rest
-            oneof [go genInvalid genUnchecked, go genUnchecked genInvalid]
-    -- Note: HM.fromList <$> genInvalid does not work because of this line in the Data.HashMap documentation:
-    -- 'If the list contains duplicate mappings, the later mappings take precedence.'
+instance (Hashable k, Eq k, GenValid k, GenValid v) => GenValid (HashMap k v) where
+  genValid = HM.fromList <$> genValid
+  shrinkValid = fmap HM.fromList . shrinkValid . HM.toList
diff --git a/src/Data/GenValidity/HashSet.hs b/src/Data/GenValidity/HashSet.hs
--- a/src/Data/GenValidity/HashSet.hs
+++ b/src/Data/GenValidity/HashSet.hs
@@ -1,25 +1,13 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
-{-# LANGUAGE CPP #-}
 
 module Data.GenValidity.HashSet where
-#if !MIN_VERSION_base(4,8,0)
-import Data.Functor ((<$>))
-#endif
-import Data.GenValidity
-import Data.Validity.HashSet ()
 
+import Data.GenValidity
 import Data.HashSet (HashSet)
 import qualified Data.HashSet as HS
 import Data.Hashable (Hashable)
-
-instance (Hashable v, Eq v, GenUnchecked v) => GenUnchecked (HashSet v) where
-    genUnchecked = HS.fromList <$> genUnchecked
-    shrinkUnchecked = fmap HS.fromList . shrinkUnchecked . HS.toList
+import Data.Validity.HashSet ()
 
 instance (Hashable v, Eq v, GenValid v) => GenValid (HashSet v) where
-    genValid = HS.fromList <$> genValid
-    shrinkValid = fmap HS.fromList . shrinkValid . HS.toList
-
-instance (Hashable v, Eq v, GenUnchecked v, GenInvalid v) => GenInvalid (HashSet v) where
-    genInvalid = HS.fromList <$> genInvalid
-    shrinkInvalid = fmap HS.fromList . shrinkInvalid . HS.toList
+  genValid = HS.fromList <$> genValid
+  shrinkValid = fmap HS.fromList . shrinkValid . HS.toList
diff --git a/src/Data/GenValidity/UnorderedContainers.hs b/src/Data/GenValidity/UnorderedContainers.hs
--- a/src/Data/GenValidity/UnorderedContainers.hs
+++ b/src/Data/GenValidity/UnorderedContainers.hs
@@ -1,8 +1,9 @@
 {-# OPTIONS_GHC -fno-warn-dodgy-exports #-}
 
 module Data.GenValidity.UnorderedContainers
-    ( module UnorderedContainers
-    ) where
+  ( module UnorderedContainers,
+  )
+where
 
 import Data.GenValidity.HashMap as UnorderedContainers ()
 import Data.GenValidity.HashSet as UnorderedContainers ()
diff --git a/test/Test/Validity/UnorderedContainersSpec.hs b/test/Test/Validity/UnorderedContainersSpec.hs
--- a/test/Test/Validity/UnorderedContainersSpec.hs
+++ b/test/Test/Validity/UnorderedContainersSpec.hs
@@ -2,16 +2,15 @@
 
 module Test.Validity.UnorderedContainersSpec where
 
-import Test.Hspec
-
 import Data.GenValidity.UnorderedContainers ()
 import Data.HashMap.Strict (HashMap)
 import Data.HashSet (HashSet)
+import Test.Hspec
 import Test.Validity.GenValidity
 
 spec :: Spec
 spec = do
-    genValidSpec @(HashSet Int)
-    genValiditySpec @(HashSet Rational)
-    genValidSpec @(HashMap Int Rational)
-    genValiditySpec @(HashMap Rational Rational)
+  genValidSpec @(HashSet Int)
+  genValidSpec @(HashSet Rational)
+  genValidSpec @(HashMap Int Rational)
+  genValidSpec @(HashMap Rational Rational)
