diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,14 @@
 # Changelog
 
+### 1.14.1
+
+* `Add` instances of `Eq`, `Ord`, `Read`, `Functor`, `Foldable`, and
+  `Traversable` for `List`.
+* Fix compilation with GHC 8.
+
 #### 1.14.0.1
 
-* Allow `aeson 0.9.*`
+* Allow `aeson 0.9.*` and (revision) `0.10.*`
 
 ## 1.14
 
diff --git a/rest-types.cabal b/rest-types.cabal
--- a/rest-types.cabal
+++ b/rest-types.cabal
@@ -1,5 +1,5 @@
 name:                rest-types
-version:             1.14.0.1
+version:             1.14.1
 description:         Silk Rest Framework Types
 synopsis:            Silk Rest Framework Types
 maintainer:          code@silk.co
@@ -30,8 +30,9 @@
     Rest.Types.ShowUrl
     Rest.Types.Void
   build-depends:
-      base == 4.*
-    , aeson >= 0.7 && < 0.10
+      base >= 4.6 && < 4.10
+    , aeson >= 0.7 && < 0.12
+    , base-compat >= 0.8 && < 0.10
     , case-insensitive >= 1.2 && < 1.3
     , generic-aeson >= 0.1 && < 0.3
     , hxt >= 9.2 && < 9.4
diff --git a/src/Rest/Types/Container.hs b/src/Rest/Types/Container.hs
--- a/src/Rest/Types/Container.hs
+++ b/src/Rest/Types/Container.hs
@@ -2,6 +2,9 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
+  , DeriveFunctor
+  , DeriveFoldable
+  , DeriveTraversable
   , EmptyDataDecls
   , FlexibleContexts
   , FlexibleInstances
@@ -35,7 +38,7 @@
   { offset :: Int
   , count  :: Int
   , items  :: [a]
-  } deriving (Generic, Show, Typeable)
+  } deriving (Generic, Eq, Ord, Show, Read, Typeable, Functor, Foldable, Traversable)
 
 instance XmlPickler a => XmlPickler (List a) where xpickle   = gxpickle
 instance ToJSON     a => ToJSON     (List a) where toJSON    = gtoJson
diff --git a/src/Rest/Types/Error.hs b/src/Rest/Types/Error.hs
--- a/src/Rest/Types/Error.hs
+++ b/src/Rest/Types/Error.hs
@@ -6,6 +6,7 @@
   , DeriveTraversable
   , EmptyDataDecls
   , GADTs
+  , NoImplicitPrelude
   , ScopedTypeVariables
   , StandaloneDeriving
   #-}
@@ -21,12 +22,11 @@
   , ToResponseCode (..)
   ) where
 
-import Control.Applicative (Applicative (..))
+import Prelude.Compat
+
 import Control.Monad (ap)
 import Data.Aeson hiding (Success)
-import Data.Foldable (Foldable)
 import Data.JSON.Schema (JSONSchema (..), gSchema)
-import Data.Traversable (Traversable)
 import Data.Typeable
 import GHC.Generics
 import Generics.Generic.Aeson
diff --git a/src/Rest/Types/Method.hs b/src/Rest/Types/Method.hs
--- a/src/Rest/Types/Method.hs
+++ b/src/Rest/Types/Method.hs
@@ -1,7 +1,11 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE
+    NoImplicitPrelude
+  , OverloadedStrings
+  #-}
 module Rest.Types.Method (Method (..)) where
 
-import Control.Applicative
+import Prelude.Compat
+
 import Data.Aeson (ToJSON (..), FromJSON (..))
 import Data.Aeson.Types (typeMismatch)
 import Data.Char (toLower)
diff --git a/src/Rest/Types/Void.hs b/src/Rest/Types/Void.hs
--- a/src/Rest/Types/Void.hs
+++ b/src/Rest/Types/Void.hs
@@ -1,9 +1,13 @@
 {-# LANGUAGE
-    DeriveDataTypeable
+    CPP
+  , DeriveDataTypeable
   , EmptyDataDecls
   , RankNTypes
   , TypeFamilies
   #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE DataKinds #-}
+#endif
 module Rest.Types.Void (Void (..)) where
 
 import Data.Aeson (FromJSON (..), ToJSON (..))
@@ -50,12 +54,18 @@
 -- | Generic. Can't derive it, sadly.
 
 instance Generic Void where
+#if __GLASGOW_HASKELL__ >= 800
+  type Rep Void = D1 ('MetaData "Void" "Rest.Types.Void" "rest-types" 'False) V1
+#else
   type Rep Void = D1 D1Void V1
+#endif
   from = magic
   to (M1 x) = x `seq` Void (error "Impossible: constructing a Void in Generic instance.")
 
+#if __GLASGOW_HASKELL__ < 800
 data D1Void
 
 instance Datatype D1Void where
   datatypeName _ = "Void"
   moduleName _ = "Rest.Types.Void"
+#endif
