diff --git a/genvalidity-unordered-containers.cabal b/genvalidity-unordered-containers.cabal
--- a/genvalidity-unordered-containers.cabal
+++ b/genvalidity-unordered-containers.cabal
@@ -1,11 +1,13 @@
--- This file has been generated from package.yaml by hpack version 0.28.2.
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.31.1.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: b402fb78cfa49ed6af47280709097fc358ae275adca53315c5bff9e21d6e0b8b
+-- hash: b5d983f9699af08db74772ca7adb658f9c76065110e1d387c7adaf9e0d22d0af
 
 name:           genvalidity-unordered-containers
-version:        0.2.0.4
+version:        0.3.0.0
 synopsis:       GenValidity support for unordered-containers
 description:    Please see README.md
 category:       Testing
@@ -14,11 +16,10 @@
 author:         Tom Sydney Kerckhove
 maintainer:     syd.kerckhove@gmail.com,
                 nick.van.den.broeck666@gmail.com
-copyright:      Copyright: (c) 2017-2018 Tom Sydney Kerckhove
+copyright:      Copyright: (c) 2017-2019 Tom Sydney Kerckhove
 license:        MIT
 license-file:   LICENSE
 build-type:     Simple
-cabal-version:  >= 1.10
 
 source-repository head
   type: git
@@ -36,7 +37,7 @@
   build-depends:
       QuickCheck
     , base <5
-    , genvalidity >=0.5
+    , genvalidity >=0.8
     , hashable
     , unordered-containers
     , validity >=0.5
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
@@ -22,8 +22,9 @@
 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
 
-instance (Hashable k, Eq k, GenInvalid k, GenInvalid v) =>
+instance (Hashable k, Eq k, GenUnchecked k, GenInvalid k, GenUnchecked v, GenInvalid v) =>
          GenInvalid (HashMap k v) where
     genInvalid =
         sized $ \n -> do
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
@@ -18,6 +18,8 @@
 
 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, GenInvalid v) => GenInvalid (HashSet v) where
+instance (Hashable v, Eq v, GenUnchecked v, GenInvalid v) => GenInvalid (HashSet v) where
     genInvalid = HS.fromList <$> genInvalid
+    shrinkInvalid = fmap HS.fromList . shrinkInvalid . HS.toList
