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.2
+version:             0.2.0.3
 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.8.4, GHC == 7.10.3, GHC == 8.0.1, GHC == 8.0.2, GHC == 8.1.*
+tested-with:         GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5
 
 source-repository head
   type:                git
@@ -30,10 +30,10 @@
   exposed-modules:     Generics.SOP.Lens
                        Generics.SOP.Lens.Named
                        Generics.SOP.Lens.Computed
-  build-depends:       base                 >= 4.6  && < 5,
-                       generics-sop         >= 0.2  && < 0.4,
-                       fclabels             >= 2.0  && < 2.1,
-                       transformers         >= 0.3  && < 0.6
+  build-depends:       base                 >= 4.6   && < 5,
+                       generics-sop         >= 0.2.3 && < 0.6,
+                       fclabels             >= 2.0   && < 2.1,
+                       transformers         >= 0.3   && < 0.6
   hs-source-dirs:      src
   default-language:    Haskell2010
   ghc-options:         -Wall
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
@@ -197,11 +197,8 @@
        => LensOptions -> String -> Path
        -> DatatypeInfo '[xs]
        -> 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' opts p ps d =
+  glens'' opts ps (datatypeName d) p (hd (constructorInfo d))
 
 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
@@ -64,11 +64,8 @@
 
 fieldNames :: (DatatypeName -> FieldName -> LensName)
            -> 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 mkName d =
+  fieldNames' (mkName (datatypeName d)) (hd (constructorInfo d))
 
 fieldNames' :: (FieldName -> LensName) -> ConstructorInfo xs -> [String]
 fieldNames' _      (Constructor _)    = error "not a record type"
