diff --git a/Cheapskate/Types.hs b/Cheapskate/Types.hs
--- a/Cheapskate/Types.hs
+++ b/Cheapskate/Types.hs
@@ -1,10 +1,16 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveDataTypeable #-}
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE StandaloneDeriving #-}
+
 module Cheapskate.Types where
 import Data.Sequence (Seq)
 import Data.Default
 import Data.Text (Text)
 import qualified Data.Map as M
 import Data.Data
+import Control.DeepSeq (NFData(..))
+import GHC.Generics (Generic)
 
 -- | Structured representation of a document.  The 'Options' affect
 -- how the document is rendered by `toHtml`.
@@ -27,6 +33,7 @@
               deriving (Show, Data, Typeable)
 
 data ListType = Bullet Char | Numbered NumWrapper Int deriving (Eq,Show,Data,Typeable)
+
 data NumWrapper = PeriodFollowing | ParenFollowing deriving (Eq,Show,Data,Typeable)
 
 -- | Simple representation of HTML tag.
@@ -71,3 +78,26 @@
         , debug = False
         }
 
+deriving instance Generic Doc
+instance NFData Doc
+
+deriving instance Generic Block
+instance NFData Block
+
+deriving instance Generic CodeAttr
+instance NFData CodeAttr
+
+deriving instance Generic ListType
+instance NFData ListType
+
+deriving instance Generic NumWrapper
+instance NFData NumWrapper
+
+deriving instance Generic HtmlTagType
+instance NFData HtmlTagType
+
+deriving instance Generic Inline
+instance NFData Inline
+
+deriving instance Generic Options
+instance NFData Options
diff --git a/Cheapskate/Util.hs b/Cheapskate/Util.hs
--- a/Cheapskate/Util.hs
+++ b/Cheapskate/Util.hs
@@ -1,4 +1,6 @@
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP #-}
+
 module Cheapskate.Util (
     joinLines
   , tabFilter
@@ -21,7 +23,9 @@
 import Data.Text (Text)
 import qualified Data.Text as T
 import Data.Char
+#if ! MIN_VERSION_base(4,8,0)
 import Control.Applicative
+#endif
 import Cheapskate.ParserCombinators
 
 -- Utility functions.
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,12 @@
+cheapskate 0.1.1 (01 Aug 2017)
+
+  * Added NFData and Generic instances for basic types
+    (aisamanra).
+  * Use -auto-exported instead of -auto-all for prof options.
+  * Add 'dingus' flag and make cheapskate-dingus deps conditional
+    (MarcelineVQ).  Previously cheapskate would pull in unneeded
+    dependencies when built with Cabal < 1.24.
+
 cheapskate 0.1.0.5 (22 Apr 2016)
 
   * Bump base to allow GHC 8 (Leif Warner).
diff --git a/cheapskate.cabal b/cheapskate.cabal
--- a/cheapskate.cabal
+++ b/cheapskate.cabal
@@ -1,5 +1,5 @@
 name:                cheapskate
-version:             0.1.0.5
+version:             0.1.1
 synopsis:            Experimental markdown processor.
 description:         This is an experimental Markdown processor in pure
                      Haskell.  It aims to process Markdown efficiently and in
@@ -47,9 +47,10 @@
                      text >= 0.9 && < 1.3,
                      blaze-html >=0.6 && < 0.10,
                      xss-sanitize >= 0.3 && < 0.4,
-                     data-default >= 0.5 && < 0.7,
+                     data-default >= 0.5 && < 0.8,
                      syb,
-                     uniplate >= 1.6 && < 1.7
+                     uniplate >= 1.6 && < 1.7,
+                     deepseq
   default-language:  Haskell2010
   ghc-options:       -Wall -fno-warn-unused-do-bind
 
@@ -63,17 +64,18 @@
                      text >= 0.9 && < 1.3
   default-language:  Haskell2010
   ghc-options:       -Wall -fno-warn-unused-do-bind
-  ghc-prof-options:  -auto-all -caf-all -rtsopts
+  ghc-prof-options:  -auto-exported -rtsopts
 
 executable cheapskate-dingus
   main-is:           cheapskate-dingus.hs
   hs-source-dirs:    bin
-  build-depends:     base, aeson, cheapskate, blaze-html,
-                     text, wai-extra, wai >= 0.3, http-types
+  if flag(dingus)
+    build-depends:     base, aeson, cheapskate, blaze-html,
+                       text, wai-extra, wai >= 0.3, http-types
   default-language:  Haskell2010
   if flag(dingus)
     Buildable:       True
   else
     Buildable:       False
   ghc-options:       -Wall -fno-warn-unused-do-bind
-  ghc-prof-options:  -auto-all -caf-all -rtsopts
+  ghc-prof-options:  -auto-exported -rtsopts
