diff --git a/Text/Show/PrettyVal.hs b/Text/Show/PrettyVal.hs
--- a/Text/Show/PrettyVal.hs
+++ b/Text/Show/PrettyVal.hs
@@ -1,23 +1,30 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE Safe #-}
+#ifndef NO_GENERICS
 {-# LANGUAGE TypeOperators #-}
 {-# LANGUAGE FlexibleInstances, FlexibleContexts #-}
 {-# LANGUAGE DefaultSignatures #-}
+#endif
 module Text.Show.PrettyVal ( PrettyVal(prettyVal) ) where
 
+import Text.Show.Value
+
+#ifndef NO_GENERICS
 import Data.Ratio
 import Data.Word
 import Data.Int
-
-import Text.Show.Value
 import GHC.Generics
+#endif
 
 -- | A class for types that may be reified into a value.
 -- Instances of this class may be derived automatically,
 -- for datatypes that support `Generics`.
 class PrettyVal a where
-  prettyVal   :: a -> Value
+  prettyVal :: a -> Value
   listValue :: [a] -> Value
 
+#ifndef NO_GENERICS
+
   default prettyVal :: (GDump (Rep a), Generic a) => a -> Value
   prettyVal = oneVal . gdump . from
 
@@ -113,4 +120,5 @@
 instance (PrettyVal a1, PrettyVal a2, PrettyVal a3,
           PrettyVal a4, PrettyVal a5, PrettyVal a6, PrettyVal a7)
   => PrettyVal (a1,a2,a3,a4,a5,a6,a7)
+#endif
 
diff --git a/pretty-show.cabal b/pretty-show.cabal
--- a/pretty-show.cabal
+++ b/pretty-show.cabal
@@ -1,5 +1,5 @@
 name:           pretty-show
-version:        1.6.6
+version:        1.6.7
 category:       Text
 
 synopsis:       Tools for working with derived `Show` instances and generic
@@ -45,6 +45,8 @@
     filepath,
     ghc-prim
   ghc-options: -Wall -O2
+  if impl(ghc < 7.4)
+    cpp-options: -DNO_GENERICS
   build-tools: happy
 
   source-repository head
@@ -58,7 +60,7 @@
   hs-source-dirs: bin
   build-depends:
     base          >= 3    &&  < 5,
-    pretty-show   == 1.6.6
+    pretty-show   == 1.6.7
   ghc-options: -Wall
 
   source-repository head
