diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,6 @@
+## generic-lens-core-2.2.0.0 (2021-07-13)
+- GHC 9.0 compatibility
+
 ## generic-lens-core-2.1.0.0 (2021-01-25)
 - Expose Data.Generics.Product.Internal.Subtype (#127, Tom Harding)
 
diff --git a/generic-lens-core.cabal b/generic-lens-core.cabal
--- a/generic-lens-core.cabal
+++ b/generic-lens-core.cabal
@@ -1,5 +1,5 @@
 name:                 generic-lens-core
-version:              2.1.0.0
+version:              2.2.0.0
 synopsis:             Generically derive traversals, lenses and prisms.
 description:          This library uses GHC.Generics to derive efficient optics (traversals, lenses and prisms) for algebraic data types in a type-directed way, with a focus on good type inference and error messages when possible.
                       .
@@ -17,7 +17,7 @@
 category:             Generics, Records, Lens
 build-type:           Simple
 cabal-version:        >= 1.10
-Tested-With:          GHC == 8.4.1, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.1, GHC == 8.10.1
+Tested-With:          GHC == 8.4.1, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.3
 
 extra-source-files:   ChangeLog.md
 
diff --git a/src/Data/Generics/Internal/Profunctor/Iso.hs b/src/Data/Generics/Internal/Profunctor/Iso.hs
--- a/src/Data/Generics/Internal/Profunctor/Iso.hs
+++ b/src/Data/Generics/Internal/Profunctor/Iso.hs
@@ -73,7 +73,7 @@
 {-# INLINE fromIso #-}
 
 iso :: (s -> a) -> (b -> t) -> Iso s t a b
-iso = dimap
+iso sa bt = dimap sa bt
 {-# INLINE iso #-}
 
 withIso :: Iso s t a b -> ((s -> a) -> (b -> t) -> r) -> r
diff --git a/src/Data/Generics/Internal/Profunctor/Prism.hs b/src/Data/Generics/Internal/Profunctor/Prism.hs
--- a/src/Data/Generics/Internal/Profunctor/Prism.hs
+++ b/src/Data/Generics/Internal/Profunctor/Prism.hs
@@ -60,8 +60,8 @@
 -- Prism stuff
 
 without' :: Prism s t a b -> Prism s t c d -> Prism s t (Either a c) (Either b d)
-without' k =
-  withPrism k  $ \bt _ k' ->
+without' k k' =
+  withPrism k  $ \bt _ ->
   withPrism k' $ \dt setc ->
     prism (either bt dt) $ \s -> fmap Right (setc s)
 {-# INLINE without' #-}
