diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,6 @@
+## generic-lens-2.1.0.0 (2021-01-25)
+- Bump to generic-lens-core-2.1.0.0
+
 ## generic-lens-2.0.0.0 (2020-02-11)
 - Drop support for GHC < 8.4
 - Better inference for `field'`
diff --git a/generic-lens.cabal b/generic-lens.cabal
--- a/generic-lens.cabal
+++ b/generic-lens.cabal
@@ -1,5 +1,5 @@
 name:                 generic-lens
-version:              2.0.0.0
+version:              2.1.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.
                       .
@@ -45,7 +45,7 @@
                     , Data.Generics.Internal.VL.Iso
 
   build-depends:      base        >= 4.11 && < 5
-                    , generic-lens-core == 2.0.0.0
+                    , generic-lens-core == 2.1.0.0
                     , profunctors
                     , text        >= 1.2 && < 1.3
 
diff --git a/src/Data/Generics/Internal/VL/Iso.hs b/src/Data/Generics/Internal/VL/Iso.hs
--- a/src/Data/Generics/Internal/VL/Iso.hs
+++ b/src/Data/Generics/Internal/VL/Iso.hs
@@ -32,6 +32,10 @@
 
 data Exchange a b s t = Exchange (s -> a) (b -> t)
 
+instance Functor (Exchange a b s) where
+  fmap f (Exchange p q) = Exchange p (f . q)
+  {-# INLINE fmap #-}
+
 instance Profunctor (Exchange a b) where
   dimap f g (Exchange sa bt) = Exchange (sa . f) (g . bt)
   {-# INLINE dimap #-}
