diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
 # Changelog for the [`ghc-typelits-knownnat`](http://hackage.haskell.org/package/ghc-typelits-knownnat) package
 
+## 0.3.1 *August 17th 2017*
+* Fix testsuite for GHC 8.2.1
+
 ## 0.3 *May 15th 2017*
 * GHC 8.2.1 support: Underlying representation for `KnownNat` in GHC 8.2 is `Natural`, meaning users of this plugin will need to update their code to use `Natural` for GHC 8.2 as well.
 
diff --git a/ghc-typelits-knownnat.cabal b/ghc-typelits-knownnat.cabal
--- a/ghc-typelits-knownnat.cabal
+++ b/ghc-typelits-knownnat.cabal
@@ -1,5 +1,5 @@
 name:                ghc-typelits-knownnat
-version:             0.3
+version:             0.3.1
 synopsis:            Derive KnownNat constraints from other KnownNat constraints
 description:
   A type checker plugin for GHC that can derive \"complex\" @KnownNat@
@@ -85,7 +85,7 @@
                        ghc                       >= 8.0.1    && <8.4,
                        ghc-tcplugins-extra       >= 0.2,
                        ghc-typelits-natnormalise >= 0.5.2    && <0.6,
-                       singletons                >= 2.2      && <3.0,
+                       singletons                >= 2.2      && <2.4,
                        transformers              >= 0.5.2.0  && <0.6,
                        template-haskell          >= 2.11.0.0 && <2.13
   hs-source-dirs:      src
@@ -100,9 +100,9 @@
   main-is:             Main.hs
   Other-Modules:       TestFunctions
   build-depends:       base                      >= 4.8   && <5,
-                       ghc-typelits-knownnat     >= 0.1,
+                       ghc-typelits-knownnat,
                        ghc-typelits-natnormalise >= 0.5   && <0.6,
-                       singletons                >= 2.2   && <3.0,
+                       singletons                >= 2.2   && <2.4,
                        tasty                     >= 0.10,
                        tasty-hunit               >= 0.9,
                        tasty-quickcheck          >= 0.8
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -3,6 +3,9 @@
 
 {-# OPTIONS_GHC -fplugin GHC.TypeLits.Normalise       #-}
 {-# OPTIONS_GHC -fplugin GHC.TypeLits.KnownNat.Solver #-}
+#if __GLASGOW_HASKELL__ >= 802
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+#endif
 
 module Main where
 
@@ -20,6 +23,11 @@
 import Unsafe.Coerce (unsafeCoerce)
 
 import TestFunctions
+
+#if __GLASGOW_HASKELL__ >= 802
+instance Arbitrary Natural where
+  arbitrary = fromInteger . abs <$> arbitrary
+#endif
 
 #if __GLASGOW_HASKELL__ >= 802
 type Number = Natural
