diff --git a/lens-sop.cabal b/lens-sop.cabal
--- a/lens-sop.cabal
+++ b/lens-sop.cabal
@@ -1,5 +1,5 @@
 name:                lens-sop
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis:            Computing lenses generically using generics-sop
 description:
   This library contains a definition of generalized lenses that are built
@@ -20,7 +20,7 @@
 category:            Generics
 build-type:          Simple
 cabal-version:       >=1.10
-tested-with:         GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2
+tested-with:         GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1
 
 source-repository head
   type:                git
@@ -33,11 +33,12 @@
   build-depends:       base                 >= 4.6  && < 5,
                        generics-sop         >= 0.2  && < 0.3,
                        fclabels             >= 2.0  && < 2.1,
-                       transformers         >= 0.3  && < 0.5
+                       transformers         >= 0.3  && < 0.6
   hs-source-dirs:      src
   default-language:    Haskell2010
   ghc-options:         -Wall
-  default-extensions:  ScopedTypeVariables
+  default-extensions:  CPP
+                       ScopedTypeVariables
                        TypeFamilies
                        RankNTypes
                        TypeOperators
diff --git a/src/Generics/SOP/Lens.hs b/src/Generics/SOP/Lens.hs
--- a/src/Generics/SOP/Lens.hs
+++ b/src/Generics/SOP/Lens.hs
@@ -81,7 +81,9 @@
 glenses :: forall r w a xs. (Generic a, Code a ~ '[xs], Arrow r, ArrowApply w) => NP (GLens r w a) xs
 glenses = case sList :: SList (Code a) of
             SCons -> hliftA (\l -> l . sop . rep) np
+#if __GLASGOW_HASKELL__ < 800
             _     -> error "inaccessible"
+#endif
 
 {-------------------------------------------------------------------------------
   Generalized lenses for representation types
diff --git a/src/Generics/SOP/Lens/Computed.hs b/src/Generics/SOP/Lens/Computed.hs
--- a/src/Generics/SOP/Lens/Computed.hs
+++ b/src/Generics/SOP/Lens/Computed.hs
@@ -199,7 +199,9 @@
        -> Either String (AbstractLens r w c (NP I xs))
 glens' opts p ps (ADT     _ n (c :* Nil)) = glens'' opts ps n p c
 glens' opts p ps (Newtype _ n c)          = glens'' opts ps n p c
+#if __GLASGOW_HASKELL__ < 800
 glens' _    _ _  _                        = error "inaccessible"
+#endif
 
 glens'' :: forall r w c xs.
            ( ArrowApply r
diff --git a/src/Generics/SOP/Lens/Named.hs b/src/Generics/SOP/Lens/Named.hs
--- a/src/Generics/SOP/Lens/Named.hs
+++ b/src/Generics/SOP/Lens/Named.hs
@@ -49,7 +49,9 @@
 gnamedLenses mkName = case sList :: SList (Code a) of
     SCons -> zip (fieldNames mkName (datatypeInfo pa))
                  (hcollapse $ hcliftA pc (K . NamedLens) totalLenses)
+#if __GLASGOW_HASKELL__ < 800
     _     -> error "inaccessible"
+#endif
   where
     totalLenses :: NP (GLens (->) (->) a) xs
     totalLenses = GLens.glenses
@@ -64,7 +66,9 @@
            -> DatatypeInfo '[xs] -> [String]
 fieldNames mkName (ADT     _ n (c :* Nil)) = fieldNames' (mkName n) c
 fieldNames mkName (Newtype _ n  c        ) = fieldNames' (mkName n) c
+#if __GLASGOW_HASKELL__ < 800
 fieldNames _ _ = error "inaccesible"
+#endif
 
 fieldNames' :: (FieldName -> LensName) -> ConstructorInfo xs -> [String]
 fieldNames' _      (Constructor _)    = error "not a record type"
