diff --git a/mandrill.cabal b/mandrill.cabal
--- a/mandrill.cabal
+++ b/mandrill.cabal
@@ -1,5 +1,5 @@
 name:                mandrill
-version:             0.5.2.0
+version:             0.5.2.1
 synopsis:            Library for interfacing with the Mandrill JSON API
 description:         Pure Haskell client for the Mandrill JSON API
 license:             MIT
diff --git a/src/Network/API/Mandrill/Types.hs b/src/Network/API/Mandrill/Types.hs
--- a/src/Network/API/Mandrill/Types.hs
+++ b/src/Network/API/Mandrill/Types.hs
@@ -1,4 +1,7 @@
 {-# LANGUAGE CPP                 #-}
+{-# LANGUAGE DeriveFunctor       #-}
+{-# LANGUAGE DeriveFoldable      #-}
+{-# LANGUAGE DeriveTraversable   #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE RankNTypes          #-}
 {-# LANGUAGE ScopedTypeVariables #-}
@@ -23,6 +26,10 @@
 import           Data.Aeson.Types
 import qualified Data.ByteString               as B
 import qualified Data.ByteString.Base64        as Base64
+#if !MIN_VERSION_base(4,8,0)
+import           Data.Foldable
+import           Data.Traversable
+#endif
 import qualified Data.HashMap.Strict           as H
 import           Data.Monoid
 import qualified Data.Text                     as T
@@ -45,7 +52,7 @@
   , _merr_code    :: !Int
   , _merr_name    :: !T.Text
   , _merr_message :: !T.Text
-  } deriving Show
+  } deriving (Show, Eq)
 
 makeLenses ''MandrillError
 deriveJSON defaultOptions { fieldLabelModifier = drop 6 } ''MandrillError
@@ -83,7 +90,7 @@
 -- which can be either a success or a failure.
 data MandrillResponse k =
     MandrillSuccess k
-  | MandrillFailure MandrillError deriving Show
+  | MandrillFailure MandrillError deriving (Show, Eq, Functor, Foldable, Traversable)
 
 instance FromJSON k => FromJSON (MandrillResponse k) where
   parseJSON v = case (parseMaybe parseJSON v) :: Maybe k of
