diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+### 0.1.3.5
+
+* Build with ghc-8.4
+
 ### 0.1.3.4
 
 * Fix byte array bugs in System.Random.PCG.Pure
diff --git a/pcg-random.cabal b/pcg-random.cabal
--- a/pcg-random.cabal
+++ b/pcg-random.cabal
@@ -1,5 +1,5 @@
 name:                pcg-random
-version:             0.1.3.4
+version:             0.1.3.5
 synopsis:            Haskell bindings to the PCG random number generator.
 description:
   PCG is a family of simple fast space-efficient statistically good
diff --git a/src/System/Random/PCG/Fast/Pure.hs b/src/System/Random/PCG/Fast/Pure.hs
--- a/src/System/Random/PCG/Fast/Pure.hs
+++ b/src/System/Random/PCG/Fast/Pure.hs
@@ -8,6 +8,9 @@
 {-# LANGUAGE MagicHash                  #-}
 {-# LANGUAGE MultiParamTypeClasses      #-}
 {-# LANGUAGE TypeFamilies               #-}
+#if __GLASGOW_HASKELL__ >= 801
+{-# LANGUAGE TypeInType                 #-}
+#endif
 {-# LANGUAGE UnboxedTuples              #-}
 #if __GLASGOW_HASKELL__ >= 707
 {-# LANGUAGE RoleAnnotations            #-}
@@ -69,18 +72,21 @@
 
 import Control.Monad.Primitive
 import Data.Bits
+import Data.Data
 import Data.Primitive.ByteArray
 import Data.Primitive.Types
+import GHC.Generics
 import GHC.Word
 
 import System.Random
 import System.Random.PCG.Class
 
 newtype FrozenGen = F Word64
-  deriving (Show, Eq, Ord, Prim)
+  deriving (Show, Eq, Ord, Prim, Typeable, Data, Generic)
 
 -- | State of the random number generator.
 newtype Gen s = G (MutableByteArray s)
+  deriving Typeable
 
 type GenIO = Gen RealWorld
 type GenST = Gen
