diff --git a/QuickCheck.cabal b/QuickCheck.cabal
--- a/QuickCheck.cabal
+++ b/QuickCheck.cabal
@@ -1,5 +1,5 @@
 Name: QuickCheck
-Version: 2.13.1
+Version: 2.13.2
 Cabal-Version: >= 1.8
 Build-type: Simple
 License: BSD3
@@ -56,14 +56,22 @@
 source-repository this
   type:     git
   location: https://github.com/nick8325/quickcheck
-  tag:      2.13.1
+  tag:      2.13.2
 
 flag templateHaskell
   Description: Build Test.QuickCheck.All, which uses Template Haskell.
   Default: True
 
 library
-  Build-depends: base >=4.3 && <5, random, containers
+  Build-depends: base >=4.3 && <5, random >=1.0.0.3 && <1.2, containers
+
+  -- random is explicitly Trustworthy since 1.0.1.0
+  -- similar constraint for containers
+  -- Note: QuickCheck is Safe only with GHC >= 7.4 (see below)
+  if impl(ghc >= 7.2)
+    Build-depends: random >=1.0.1.0
+  if impl(ghc >= 7.4)
+    Build-depends: containers >=0.4.2.1
 
   -- Modules that are always built.
   Exposed-Modules:
diff --git a/Test/QuickCheck.hs b/Test/QuickCheck.hs
--- a/Test/QuickCheck.hs
+++ b/Test/QuickCheck.hs
@@ -171,6 +171,7 @@
   , functionIntegral
   , functionRealFrac
   , functionBoundedEnum
+  , functionVoid
 #endif
 
     -- * The 'CoArbitrary' typeclass: generation of functions the old-fashioned way
diff --git a/Test/QuickCheck/Function.hs b/Test/QuickCheck/Function.hs
--- a/Test/QuickCheck/Function.hs
+++ b/Test/QuickCheck/Function.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeOperators, GADTs, CPP #-}
+{-# LANGUAGE TypeOperators, GADTs, CPP, Rank2Types #-}
 #ifndef NO_SAFE_HASKELL
 {-# LANGUAGE Safe #-}
 #endif
@@ -48,6 +48,7 @@
   , functionIntegral
   , functionRealFrac
   , functionBoundedEnum
+  , functionVoid
 #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 708
   , pattern Fn
   , pattern Fn2
@@ -173,6 +174,13 @@
 -- | Provides a 'Function' instance for types with 'Show' and 'Read'.
 functionShow :: (Show a, Read a) => (a->c) -> (a:->c)
 functionShow f = functionMap show read f
+
+-- | Provides a 'Function' instance for types isomorphic to 'Data.Void.Void'.
+--
+-- An actual @'Function' 'Data.Void.Void'@ instance is defined in
+-- @quickcheck-instances@.
+functionVoid :: (forall b. void -> b) -> void :-> c
+functionVoid _ = Nil
 
 -- | The basic building block for 'Function' instances.
 -- Provides a 'Function' instance by mapping to and from a type that
diff --git a/Test/QuickCheck/Gen.hs b/Test/QuickCheck/Gen.hs
--- a/Test/QuickCheck/Gen.hs
+++ b/Test/QuickCheck/Gen.hs
@@ -189,6 +189,11 @@
 -- The input list must be non-empty.
 frequency :: [(Int, Gen a)] -> Gen a
 frequency [] = error "QuickCheck.frequency used with empty list"
+frequency xs
+  | any (< 0) (map fst xs) =
+    error "QuickCheck.frequency: negative weight"
+  | all (== 0) (map fst xs) =
+    error "QuickCheck.frequency: all weights were zero"
 frequency xs0 = choose (1, tot) >>= (`pick` xs0)
  where
   tot = sum (map fst xs0)
diff --git a/Test/QuickCheck/Monadic.hs b/Test/QuickCheck/Monadic.hs
--- a/Test/QuickCheck/Monadic.hs
+++ b/Test/QuickCheck/Monadic.hs
@@ -123,7 +123,9 @@
 instance Monad m => Monad (PropertyM m) where
   return = pure
   (>>=) = bind
+#if !MIN_VERSION_base(4,13,0)
   fail = fail_
+#endif
 
 #ifndef NO_MONADFAIL
 instance Monad m => Fail.MonadFail (PropertyM m) where
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,4 +1,10 @@
-QuickCheck 2.13.1 (release 2019-03-29)
+QuickCheck 2.13.2 (released 2019-06-30)
+	* Compatibility with GHC 8.8 (thanks to Bodigrim)
+	* Improve error message when 'frequency' is used with only zero weights
+	* Add 'functionVoid' combinator (thanks to Oleg Grenrus)
+	* Tighten bounds for random package (thanks to Oleg Grenrus)
+
+QuickCheck 2.13.1 (released 2019-03-29)
 	* A couple of bug fixes
 
 QuickCheck 2.13 (released 2019-03-26)
