diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,4 +1,8 @@
-# Revision history for vec
+# Revision history for vec-optics
+
+## 0.3.1
+
+- Support GHC-8.6.5...9.10.1
 
 ## 0.3
 
diff --git a/src/Data/Vec/DataFamily/SpineStrict/Optics.hs b/src/Data/Vec/DataFamily/SpineStrict/Optics.hs
--- a/src/Data/Vec/DataFamily/SpineStrict/Optics.hs
+++ b/src/Data/Vec/DataFamily/SpineStrict/Optics.hs
@@ -124,18 +124,6 @@
 -- Instances
 -------------------------------------------------------------------------------
 
-#if !MIN_VERSION_optics_core(0,4,0)
-instance N.SNatI n => L.FunctorWithIndex (Fin n) (Vec n) where
-    imap = imap
-
-instance N.SNatI n => L.FoldableWithIndex (Fin n) (Vec n) where
-    ifoldMap = ifoldMap
-    ifoldr   = ifoldr
-
-instance N.SNatI n => L.TraversableWithIndex (Fin n) (Vec n) where
-    itraverse = itraverse
-#endif
-
 instance N.SNatI n => L.Each (Fin n) (Vec n a) (Vec n b) a b where
 
 type instance L.Index (Vec n a)   = Fin n
diff --git a/src/Data/Vec/Lazy/Optics.hs b/src/Data/Vec/Lazy/Optics.hs
--- a/src/Data/Vec/Lazy/Optics.hs
+++ b/src/Data/Vec/Lazy/Optics.hs
@@ -118,18 +118,6 @@
 -- Instances
 -------------------------------------------------------------------------------
 
-#if !MIN_VERSION_optics_core(0,4,0)
-instance L.FunctorWithIndex (Fin n) (Vec n) where
-    imap = imap
-
-instance L.FoldableWithIndex (Fin n) (Vec n) where
-    ifoldMap = ifoldMap
-    ifoldr   = ifoldr
-
-instance L.TraversableWithIndex (Fin n) (Vec n) where
-    itraverse = itraverse
-#endif
-
 instance L.Each (Fin n) (Vec n a) (Vec n b) a b where
 
 type instance L.Index (Vec n a)   = Fin n
diff --git a/src/Data/Vec/Pull/Optics.hs b/src/Data/Vec/Pull/Optics.hs
--- a/src/Data/Vec/Pull/Optics.hs
+++ b/src/Data/Vec/Pull/Optics.hs
@@ -100,16 +100,3 @@
 -- | Prism from list.
 _Vec :: N.SNatI n => L.Prism' [a] (Vec n a)
 _Vec = L.prism' toList fromList
-
--------------------------------------------------------------------------------
--- Instances
--------------------------------------------------------------------------------
-
-#if !MIN_VERSION_optics_core(0,4,0)
-instance L.FunctorWithIndex (Fin n) (Vec n) where
-    imap = imap
-
-instance N.SNatI n => L.FoldableWithIndex (Fin n) (Vec n) where
-    ifoldMap = ifoldMap
-    ifoldr   = ifoldr
-#endif
diff --git a/vec-optics.cabal b/vec-optics.cabal
--- a/vec-optics.cabal
+++ b/vec-optics.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               vec-optics
-version:            0.4
+version:            0.4.1
 synopsis:           Vec: length-indexed (sized) list: optics support
 category:           Data, Dependent Types, Optics
 description:
@@ -20,13 +20,15 @@
 build-type:         Simple
 extra-source-files: ChangeLog.md
 tested-with:
-  GHC ==8.0.2
-   || ==8.2.2
-   || ==8.4.4
-   || ==8.6.5
+  GHC ==8.6.5
    || ==8.8.4
-   || ==8.10.4
-   || ==9.0.1
+   || ==8.10.7
+   || ==9.0.2
+   || ==9.2.8
+   || ==9.4.8
+   || ==9.6.5
+   || ==9.8.2
+   || ==9.10.1
 
 source-repository head
   type:     git
@@ -45,15 +47,15 @@
     Data.Vec.Pull.Optics
 
   -- GHC boot libs
-  build-depends:    base >=4.9 && <4.16
+  build-depends:    base >=4.12.0.0 && <4.21
 
   -- siblings
   build-depends:
-    , fin  ^>=0.2
-    , vec  ^>=0.4
+    , fin  ^>=0.3.1
+    , vec  ^>=0.5.1
 
   -- other dependencies
-  build-depends:    optics-core >=0.2 && <0.5
+  build-depends:    optics-core ^>=0.4.1.1
   other-extensions:
     CPP
     FlexibleContexts
