diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+0.4.2.1: 28 Dec 2016: instance Generic MPFR
 0.4.2: 2nd Sep 2016: Added RealFloat instances
 0.4.1: 2nd Aug 2016: Added support for digamma
 0.4.: 11th Jul 2016: Compiles only with ghc 7.10 or newer
diff --git a/hmpfr.cabal b/hmpfr.cabal
--- a/hmpfr.cabal
+++ b/hmpfr.cabal
@@ -1,5 +1,5 @@
 name:                hmpfr
-version:             0.4.2
+version:             0.4.2.1
 synopsis:            Haskell binding to the MPFR library
 description:
   Haskell binding to the MPFR library.
diff --git a/src/Data/Number/MPFR/FFIhelper.hsc b/src/Data/Number/MPFR/FFIhelper.hsc
--- a/src/Data/Number/MPFR/FFIhelper.hsc
+++ b/src/Data/Number/MPFR/FFIhelper.hsc
@@ -1,4 +1,4 @@
-{-# LANGUAGE ForeignFunctionInterface, DeriveDataTypeable, GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE ForeignFunctionInterface, DeriveGeneric, DeriveDataTypeable, GeneralizedNewtypeDeriving #-}
 #include <chsmpfr.h>
 #include <mpfr.h>
 
@@ -20,6 +20,7 @@
 import Foreign.ForeignPtr (ForeignPtr, withForeignPtr, mallocForeignPtrBytes)
 
 import Data.Typeable(Typeable)
+import GHC.Generics(Generic)
 
 import Data.Function(on)
 
@@ -59,7 +60,7 @@
                  sign :: {-# UNPACK #-} !Sign,
                  exponent :: {-# UNPACK #-} !Exp,
                  limbs :: {-# UNPACK #-} !(ForeignPtr Limb)
-} deriving (Typeable)
+} deriving (Typeable, Generic)
 
 instance Storable MPFR where
     sizeOf _ = #size __mpfr_struct
