diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,5 @@
-- 0.1.2.0
+- 0.1.2.1
+    - Fix to work with `generics-sop-0.2.3.0`
 
+- 0.1.2.0
     - Add 'constructorName'
diff --git a/generics-sop-lens.cabal b/generics-sop-lens.cabal
--- a/generics-sop-lens.cabal
+++ b/generics-sop-lens.cabal
@@ -1,9 +1,9 @@
--- This file has been generated from package.yaml by hpack version 0.14.0.
+-- This file has been generated from package.yaml by hpack version 0.14.1.
 --
 -- see: https://github.com/sol/hpack
 
 name:           generics-sop-lens
-version:        0.1.2.0
+version:        0.1.2.1
 synopsis:       Lenses for types in generics-sop
 description:    Lenses for types in generics-sop package
 category:       Web
@@ -32,7 +32,7 @@
   build-depends:
       base                  >=4.7      && <4.10
     , generics-sop          >=0.1      && <0.3
-    , lens                  >=4.7      && <4.15
+    , lens                  >=4.7      && <4.16
   exposed-modules:
       Generics.SOP.Lens
   default-language: Haskell2010
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
@@ -1,5 +1,6 @@
 {-# LANGUAGE CPP                   #-}
 {-# LANGUAGE DataKinds             #-}
+{-# LANGUAGE EmptyCase             #-}
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE PolyKinds             #-}
@@ -36,10 +37,10 @@
     _Z,
     _S,
     -- * DatatypeInfo
-    moduleName,
-    datatypeName,
-    constructorInfo,
-    constructorName,
+    Generics.SOP.Lens.moduleName,
+    Generics.SOP.Lens.datatypeName,
+    Generics.SOP.Lens.constructorInfo,
+    Generics.SOP.Lens.constructorName,
     ) where
 
 import Control.Lens
@@ -120,7 +121,7 @@
   where
     g :: NP f '[y] -> f y
     g (y  :* Nil)   = y
-#if __GLASGOW_HASKELL < 800
+#if __GLASGOW_HASKELL__ < 800
     g _ = error "singletonP"
 #endif
 
@@ -192,8 +193,10 @@
   where
     g :: NS f '[y] -> f y
     g (Z y)   = y
-#if __GLASGOW_HASKELL < 800
+#if __GLASGOW_HASKELL__ < 800
     g _ = error "singletonS"
+#else
+    g (S x) = case x of {}
 #endif
 
     s :: f x -> NS f '[x]
@@ -258,7 +261,9 @@
     s :: DatatypeInfo xss -> NP ConstructorInfo xss -> DatatypeInfo xss
     s (ADT m n _)     cs          = ADT m n cs
     s (Newtype m n _) (c :* Nil)  = Newtype m n c
+#if __GLASGOW_HASKELL__ < 800
     s _ _ = error "constructorInfo set: impossible happened"
+#endif
 
 -- | /Note:/ 'Infix' constructor has operator as a 'ConstructorName'. Use as
 -- setter with care.
