diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -7,6 +7,9 @@
 
 # Changelog
 
+* 4.1.0.0
+  - Removed generic-lens dependency - didn't really use it.
+
 * 4.0.0.0
   - Renamed `itemXXX` to `pieceXXX`, `Itemized` to `Pieced`, `itemizedXXX` to `piecedXXX`.
 
diff --git a/data-diverse-lens.cabal b/data-diverse-lens.cabal
--- a/data-diverse-lens.cabal
+++ b/data-diverse-lens.cabal
@@ -1,5 +1,5 @@
 name:                data-diverse-lens
-version:             4.0.0.0
+version:             4.1.0.0
 synopsis:            Isos & Lens for Data.Diverse.Many and Prisms for Data.Diverse.Which
 description:         Isos & Lens for Data.Diverse.Many and Prisms for Data.Diverse.Which
                      Refer to [ManySpec.hs](https://github.com/louispan/data-diverse-lens/blob/master/test/Data/Diverse/Lens/ManySpec.hs) and [WhichSpec.hs](https://github.com/louispan/data-diverse-lens/blob/master/test/Data/Diverse/Lens/WhichSpec.hs) for example usages.
@@ -27,7 +27,6 @@
                      , data-diverse >= 4.0
                      , tagged >= 0.8
                      , profunctors >= 5.2
-                     , generic-lens >= 0.5
                      , lens >= 4
                      , data-has >= 0.3
   ghc-options:         -Wall
@@ -45,7 +44,6 @@
                      , hspec >= 2
                      , lens >= 4
                      , tagged >= 0.8
-                     , generic-lens >= 0.5
   ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
   default-language:    Haskell2010
 
diff --git a/src/Data/Diverse/Lens/Many.hs b/src/Data/Diverse/Lens/Many.hs
--- a/src/Data/Diverse/Lens/Many.hs
+++ b/src/Data/Diverse/Lens/Many.hs
@@ -53,7 +53,7 @@
 import Control.Lens
 import Data.Diverse.Many
 import Data.Diverse.TypeLevel
-import Data.Generics.Product
+-- import Data.Generics.Product
 import Data.Has
 import Data.Kind
 import Data.Tagged
@@ -152,9 +152,9 @@
     type ReplacedN n a b s
     pieceN :: Lens s (ReplacedN n a b s) a b
 
-    -- | Make it easy to create an instance of 'pieceN' using 'Data.Generics.Product.Positions'
-    default pieceN :: (HasPosition n s (ReplacedN n a b s) a b) => Lens s (ReplacedN n a b s) a b
-    pieceN = position @n
+    -- -- | Make it easy to create an instance of 'pieceN' using 'Data.Generics.Product.Positions'
+    -- default pieceN :: (HasPosition n s (ReplacedN n a b s) a b) => Lens s (ReplacedN n a b s) a b
+    -- pieceN = position @n
 
 instance (MemberAt n x xs)
   => HadN n x (Many xs) where
diff --git a/src/Data/Diverse/Lens/Which.hs b/src/Data/Diverse/Lens/Which.hs
--- a/src/Data/Diverse/Lens/Which.hs
+++ b/src/Data/Diverse/Lens/Which.hs
@@ -40,7 +40,6 @@
 import Control.Lens
 import Data.Diverse.TypeLevel
 import Data.Diverse.Which
-import Data.Generics.Sum
 import Data.Kind
 import Data.Tagged
 import Data.Void
@@ -62,9 +61,9 @@
 class AsFacet a s where
     facet :: Prism' s a
 
-    -- | Make it easy to create an instance of 'AsFacet' using 'Data.Generics.Sum.Typed'
-    default facet :: (AsType a s) => Prism' s a
-    facet = _Typed
+    -- -- | Make it easy to create an instance of 'AsFacet' using 'Data.Generics.Sum.Typed'
+    -- default facet :: (AsType a s) => Prism' s a
+    -- facet = _Typed
 
 instance AsFacet Void (Which '[]) where
     facet = prism' absurd impossible
