diff --git a/HStringTemplate.cabal b/HStringTemplate.cabal
--- a/HStringTemplate.cabal
+++ b/HStringTemplate.cabal
@@ -1,5 +1,5 @@
 name:                HStringTemplate
-version:             0.5.1.1
+version:             0.5.1.2
 synopsis:            StringTemplate implementation in Haskell.
 description:         A port of the Java library by Terrence Parr.
 category:            Text
@@ -12,7 +12,7 @@
 build-Depends:       base
 Cabal-Version:       >= 1.2
 
-flag small-base
+flag smaller-base
 flag syb-with-class
 flag simple-generics
 flag quasi-quotation
@@ -22,18 +22,14 @@
     build-depends:   syb-with-class
     exposed-modules: Text.StringTemplate.GenericWithClass
 
-  if flag(simple-generics)
-    build-depends: syb
-    exposed-modules: Text.StringTemplate.GenericStandard
-
   if flag(quasi-quotation)
-    build-depends: template-haskell >= 2.3, syb, mtl
+    build-depends: template-haskell >= 2.3, mtl
     exposed-modules: Text.StringTemplate.QQ
 
-  if flag(small-base)
-    build-depends:   base >= 3, filepath, parsec < 3, containers, pretty, time, old-time, old-locale, bytestring, directory, array
+  if flag(smaller-base)
+    build-depends:   syb, base >= 4, base < 5, filepath, parsec < 3, containers, pretty, time, old-time, old-locale, bytestring, directory, array
   else
-    build-depends:   base < 3, filepath, parsec
+    build-depends:   base > 3, base < 4, filepath, parsec < 3, containers, pretty, time, old-time, old-locale, bytestring, directory, array
   exposed-modules:   Text.StringTemplate
                      Text.StringTemplate.Base
                      Text.StringTemplate.Classes
diff --git a/Text/StringTemplate/GenericStandard.hs b/Text/StringTemplate/GenericStandard.hs
deleted file mode 100644
--- a/Text/StringTemplate/GenericStandard.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-{-# LANGUAGE FlexibleInstances, OverlappingInstances, UndecidableInstances, Rank2Types, ScopedTypeVariables #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
---------------------------------------------------------------------
--- | Generic Instance for ToSElem using standard Data.Generic libraries.
---------------------------------------------------------------------}
-
-module Text.StringTemplate.GenericStandard() where
-import qualified Data.Map as M
-import Text.StringTemplate.Classes
-import Text.StringTemplate.Instances()
-import Data.Generics.Basics
-import Data.Generics.Aliases
-
-gToSElem :: forall a b.(Data a, Stringable b) => a -> SElem b
-gToSElem = (\x ->
-            case (map stripInitUnder (constrFields . toConstr $ x)) of
-              [] -> LI (STR (showConstr (toConstr x)) :
-                        (gmapQ gToSElem x))
-              fs -> SM (M.fromList (zip fs (gmapQ gToSElem x)))
-           )
-           `ext1Q` (\t -> case t of (Just x) -> gToSElem x; _ -> SNull)
-           `ext1Q` (SM . fmap gToSElem)
-           `ext1Q` (LI . map gToSElem)
-           `extQ` (toSElem :: Bool -> SElem b)
-           `extQ` (toSElem :: Float -> SElem b)
-           `extQ` (toSElem :: Double -> SElem b)
-           `extQ` (toSElem :: Int -> SElem b)
-           `extQ` (toSElem :: Integer -> SElem b)
-           `extQ` (toSElem :: String -> SElem b)
-
-instance Data a => ToSElem a
-    where toSElem = gToSElem
-
-stripInitUnder :: [Char] -> [Char]
-stripInitUnder ('_':s) = stripInitUnder s
-stripInitUnder s       = s
diff --git a/Text/StringTemplate/QQ.hs b/Text/StringTemplate/QQ.hs
--- a/Text/StringTemplate/QQ.hs
+++ b/Text/StringTemplate/QQ.hs
@@ -11,22 +11,20 @@
 -- This module provides stmp, a quasi-quoter for StringTemplate expressions.
 -- Quoted templates are guaranteed syntactically well-formed at compile time,
 -- and antiquotation (of identifiers only) is provided by backticks.
--- Usage: @ let var = [0,1,2] in toString [$stmp|($`var`; separator = ', '$)|] === "(0, 1, 2)"@
+-- Usage: @ let var = [0,1,2] in toString [$stmp|($\`var\`; separator = ', '$)|] === \"(0, 1, 2)\"@
 -----------------------------------------------------------------------------
 
 module Text.StringTemplate.QQ (stmp) where
 
-import Data.Generics
 import qualified Language.Haskell.TH as TH
 import Language.Haskell.TH.Quote
 import Text.StringTemplate.Base
-import Text.ParserCombinators.Parsec
 import Control.Monad.Writer
-import Control.Applicative
 
 quoteTmplExp :: String -> TH.ExpQ
 quoteTmplPat :: String -> TH.PatQ
 
+stmp :: QuasiQuoter
 stmp = QuasiQuoter quoteTmplExp quoteTmplPat
 
 quoteTmplPat = error "Cannot apply stmp quasiquoter in patterns"
@@ -34,7 +32,7 @@
   where
     vars = case parseSTMPNames s of
              Right xs -> xs
-             Left  err -> error (show err)
+             Left  err -> error $ show err
     base  = TH.AppE (TH.VarE (TH.mkName "newSTMP")) (TH.LitE (TH.StringL $ s))
     tmpl  = foldr addAttrib base vars
     addAttrib var x = TH.AppE
