diff --git a/generics-sop.cabal b/generics-sop.cabal
--- a/generics-sop.cabal
+++ b/generics-sop.cabal
@@ -1,5 +1,5 @@
 name:                generics-sop
-version:             0.1.1
+version:             0.1.1.1
 synopsis:            Generic Programming using True Sums of Products
 description:
   A library to support the definition of generic functions.
@@ -57,7 +57,7 @@
                        Generics.SOP.Universe
                        Generics.SOP.Sing
   build-depends:       base                 >= 4.6  && < 5,
-                       template-haskell     >= 2.8  && < 2.10,
+                       template-haskell     >= 2.8  && < 2.11,
                        ghc-prim             >= 0.3  && < 0.4
   if impl (ghc < 7.8)
     build-depends:     tagged               >= 0.7  && < 0.8
@@ -86,7 +86,8 @@
   if impl (ghc >= 7.8)
     default-extensions:  AutoDeriveTypeable
   other-extensions:    OverloadedStrings
-                       OverlappingInstances
                        PolyKinds
                        UndecidableInstances
                        TemplateHaskell
+                       DeriveGeneric
+                       StandaloneDeriving
diff --git a/src/Generics/SOP/BasicFunctors.hs b/src/Generics/SOP/BasicFunctors.hs
--- a/src/Generics/SOP/BasicFunctors.hs
+++ b/src/Generics/SOP/BasicFunctors.hs
@@ -18,10 +18,14 @@
   , unComp
   ) where
 
+#if MIN_VERSION_base(4,8,0)
+import Data.Monoid ((<>))
+#else
 import Control.Applicative
 import Data.Foldable (Foldable(..))
 import Data.Monoid (Monoid, mempty, (<>))
 import Data.Traversable (Traversable(..))
+#endif
 import qualified GHC.Generics as GHC
 
 -- | The constant type functor.
diff --git a/src/Generics/SOP/Classes.hs b/src/Generics/SOP/Classes.hs
--- a/src/Generics/SOP/Classes.hs
+++ b/src/Generics/SOP/Classes.hs
@@ -31,7 +31,9 @@
 --
 module Generics.SOP.Classes where
 
+#if !(MIN_VERSION_base(4,8,0))
 import Control.Applicative (Applicative)
+#endif
 import Data.Proxy (Proxy)
 
 import Generics.SOP.BasicFunctors
diff --git a/src/Generics/SOP/NS.hs b/src/Generics/SOP/NS.hs
--- a/src/Generics/SOP/NS.hs
+++ b/src/Generics/SOP/NS.hs
@@ -120,7 +120,7 @@
 --
 -- If you expand the type synonyms and newtypes involved, you get
 --
--- > Injection f xs a = (f -.-> K (NS f xs)) a ~= f a -> K (NS f xs) a ~= f a -> K (NS f xs)
+-- > Injection f xs a = (f -.-> K (NS f xs)) a ~= f a -> K (NS f xs) a ~= f a -> NS f xs
 --
 -- If we pick @a@ to be an element of @xs@, this indeed corresponds to an
 -- injection into the sum.
