diff --git a/Data/Aeson/Lens.hs b/Data/Aeson/Lens.hs
--- a/Data/Aeson/Lens.hs
+++ b/Data/Aeson/Lens.hs
@@ -147,7 +147,7 @@
                => IndexedTraversal Int (Maybe Value) (Maybe Value) (Maybe u) (Maybe v)
 traverseArray' = index $ \f m -> case m of
   Just (Array (map fromJSONMaybe . V.toList -> v)) ->
-    Just . Array . V.fromList . map toJSON . catMaybes <$> withIndex traverseList f v
+    Just . Array . V.fromList . map toJSON . catMaybes <$> itraverse f v
   v -> pure v
 {-# INLINE traverseArray' #-}
 
diff --git a/aeson-lens.cabal b/aeson-lens.cabal
--- a/aeson-lens.cabal
+++ b/aeson-lens.cabal
@@ -1,5 +1,5 @@
 name:                aeson-lens
-version:             0.4.0.0
+version:             0.4.0.1
 synopsis:            Lens of Aeson
 description:         Lens of Aeson
 license:             BSD3
@@ -19,7 +19,7 @@
   exposed-modules:     Data.Aeson.Lens
   build-depends:       base >=4.5 && <5
                      , aeson >=0.6
-                     , lens >=3.0
+                     , lens >=3.3
                      , text >=0.11
                      , bytestring >=0.9
                      , vector >=0.9
