diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,8 +1,12 @@
 # ChangeLog for yesod-core
 
+## 1.6.17.1
+
+* Remove unnecessary deriving of Typeable
+
 ## 1.6.17
 
-Adds `contentTypeIsJson` [#1646](https://github.com/yesodweb/yesod/pull/1646)
+* Adds `contentTypeIsJson` [#1646](https://github.com/yesodweb/yesod/pull/1646)
 
 ## 1.6.16.1
 
diff --git a/src/Yesod/Core/Handler.hs b/src/Yesod/Core/Handler.hs
--- a/src/Yesod/Core/Handler.hs
+++ b/src/Yesod/Core/Handler.hs
@@ -8,7 +8,6 @@
 {-# LANGUAGE TupleSections              #-}
 {-# LANGUAGE TypeFamilies               #-}
 {-# LANGUAGE RankNTypes                 #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
 {-# LANGUAGE ScopedTypeVariables        #-}
 ---------------------------------------------------------
 --
@@ -1037,7 +1036,7 @@
 -- > redirect (NewsfeedR :#: storyId)
 --
 -- @since 1.2.9.
-data Fragment a b = a :#: b deriving (Show, Typeable)
+data Fragment a b = a :#: b deriving Show
 
 instance (RedirectUrl master a, PathPiece b) => RedirectUrl master (Fragment a b) where
   toTextUrl (a :#: b) = (\ua -> T.concat [ua, "#", toPathPiece b]) <$> toTextUrl a
diff --git a/src/Yesod/Core/Types.hs b/src/Yesod/Core/Types.hs
--- a/src/Yesod/Core/Types.hs
+++ b/src/Yesod/Core/Types.hs
@@ -1,6 +1,5 @@
 {-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveFunctor #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
 {-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE TupleSections #-}
 {-# LANGUAGE FlexibleInstances          #-}
@@ -37,7 +36,6 @@
 import qualified Data.Text                          as T
 import qualified Data.Text.Lazy.Builder             as TBuilder
 import           Data.Time                          (UTCTime)
-import           Data.Typeable                      (Typeable)
 import           GHC.Generics                       (Generic)
 import           Language.Haskell.TH.Syntax         (Loc)
 import qualified Network.HTTP.Types                 as H
@@ -333,7 +331,7 @@
     | NotAuthenticated
     | PermissionDenied !Text
     | BadMethod !H.Method
-    deriving (Show, Eq, Typeable, Generic)
+    deriving (Show, Eq, Generic)
 instance NFData ErrorResponse
 
 ----- header stuff
@@ -411,7 +409,6 @@
     | HCCreated !Text
     | HCWai !W.Response
     | HCWaiApp !W.Application
-    deriving Typeable
 
 instance Show HandlerContents where
     show (HCContent status (TypedContent t _)) = "HCContent " ++ show (status, t)
diff --git a/src/Yesod/Routes/Parse.hs b/src/Yesod/Routes/Parse.hs
--- a/src/Yesod/Routes/Parse.hs
+++ b/src/Yesod/Routes/Parse.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE PatternGuards #-}
 {-# OPTIONS_GHC -fno-warn-missing-fields #-} -- QuasiQuoter
 module Yesod.Routes.Parse
diff --git a/test/YesodCoreTest/Cache.hs b/test/YesodCoreTest/Cache.hs
--- a/test/YesodCoreTest/Cache.hs
+++ b/test/YesodCoreTest/Cache.hs
@@ -1,7 +1,6 @@
 {-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE Rank2Types #-}
 module YesodCoreTest.Cache
     ( cacheTest
@@ -22,10 +21,8 @@
 data C = C
 
 newtype V1 = V1 Int
-    deriving Typeable
 
 newtype V2 = V2 Int
-    deriving Typeable
 
 mkYesod "C" [parseRoutes|
 /    RootR GET
diff --git a/yesod-core.cabal b/yesod-core.cabal
--- a/yesod-core.cabal
+++ b/yesod-core.cabal
@@ -1,5 +1,5 @@
 name:            yesod-core
-version:         1.6.17
+version:         1.6.17.1
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -24,7 +24,7 @@
 library
     hs-source-dirs: src
 
-    build-depends:   base                  >= 4.9      && < 5
+    build-depends:   base                  >= 4.10     && < 5
                    , aeson                 >= 1.0
                    , auto-update
                    , blaze-html            >= 0.5
