diff --git a/finite-typelits.cabal b/finite-typelits.cabal
--- a/finite-typelits.cabal
+++ b/finite-typelits.cabal
@@ -1,5 +1,5 @@
 name:                finite-typelits
-version:             0.1.4.0
+version:             0.1.4.1
 synopsis:            A type inhabited by finitely many values, indexed by type-level naturals.
 description:         A type inhabited by finitely many values, indexed by type-level naturals.
 homepage:            https://github.com/mniip/finite-typelits
diff --git a/src/Data/Finite.hs b/src/Data/Finite.hs
--- a/src/Data/Finite.hs
+++ b/src/Data/Finite.hs
@@ -52,7 +52,7 @@
 finites :: KnownNat n => [Finite n]
 finites = results
   where
-    results = Finite <$> [0 .. (natVal (head results) - 1)]
+    results = Finite `fmap` [0 .. (natVal (head results) - 1)]
 
 -- | Same as 'finites' but with a proxy argument to avoid type signatures.
 finitesProxy :: KnownNat n => proxy n -> [Finite n]
diff --git a/src/Data/Finite/Internal.hs b/src/Data/Finite/Internal.hs
--- a/src/Data/Finite/Internal.hs
+++ b/src/Data/Finite/Internal.hs
@@ -7,7 +7,7 @@
 -- Stability   :  experimental
 -- Portability :  portable
 --------------------------------------------------------------------------------
-{-# LANGUAGE KindSignatures, DataKinds, DeriveGeneric #-}
+{-# LANGUAGE KindSignatures, DataKinds #-}
 module Data.Finite.Internal
     (
         Finite(Finite),
@@ -18,7 +18,6 @@
 
 import GHC.Read
 import GHC.TypeLits
-import GHC.Generics
 import Control.DeepSeq
 import Control.Monad
 import Data.Ratio
@@ -29,8 +28,7 @@
 --
 -- prop> getFinite x < natVal x
 -- prop> getFinite x >= 0
-newtype Finite (n :: Nat) = Finite Integer
-                          deriving (Eq, Ord, Generic)
+newtype Finite (n :: Nat) = Finite Integer deriving (Eq, Ord)
 
 -- | Convert an 'Integer' into a 'Finite', throwing an error if the input is out of bounds.
 finite :: KnownNat n => Integer -> Finite n
