diff --git a/Data/UnixTime/Types.hsc b/Data/UnixTime/Types.hsc
--- a/Data/UnixTime/Types.hsc
+++ b/Data/UnixTime/Types.hsc
@@ -1,3 +1,5 @@
+{-# LANGUAGE DeriveGeneric #-}
+
 module Data.UnixTime.Types where
 
 import Control.Applicative ((<$>), (<*>))
@@ -12,6 +14,7 @@
 #if __GLASGOW_HASKELL__ >= 704
 import Data.Binary
 #endif
+import GHC.Generics
 
 #include <sys/time.h>
 
@@ -32,7 +35,7 @@
     utSeconds :: {-# UNPACK #-} !CTime
     -- | Micro seconds (i.e. 10^(-6))
   , utMicroSeconds :: {-# UNPACK #-} !Int32
-  } deriving (Eq,Ord,Show)
+  } deriving (Eq,Ord,Show,Generic)
 
 instance Storable UnixTime where
     sizeOf _    = (#size struct timeval)
diff --git a/unix-time.cabal b/unix-time.cabal
--- a/unix-time.cabal
+++ b/unix-time.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               unix-time
-version:            0.4.11
+version:            0.4.12
 license:            BSD3
 license-file:       LICENSE
 maintainer:         Kazu Yamamoto <kazu@iij.ad.jp>
