diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,4 +1,8 @@
-# Version history for ral
+# Version history for ral-optics
+
+## 0.2.1
+
+- Support GHC-8.6.5...9.10.1
 
 ## 0.2
 
diff --git a/ral-optics.cabal b/ral-optics.cabal
--- a/ral-optics.cabal
+++ b/ral-optics.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               ral-optics
-version:            0.2
+version:            0.2.1
 synopsis:           Length-indexed random access lists: optics utilities.
 category:           Data, Dependent Types, Singletons, Optics
 description:
@@ -17,13 +17,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
@@ -47,13 +49,12 @@
     Data.RAVec.NonEmpty.Optics.Internal
 
   build-depends:
-    , base         >=4.9 && <4.16
-    , bin          ^>=0.1
-    , fin          ^>=0.2
-    , optics-core  >=0.2 && <0.5
-    , ral          ^>=0.2
+    , base         >=4.12.0.0 && <4.21
+    , bin          ^>=0.1.4
+    , fin          ^>=0.3.1
+    , optics-core  ^>=0.4.1.1
+    , ral          ^>=0.2.1
 
 -- dump-core
--- if impl(ghc >= 8.0)
 --  build-depends: dump-core
 --  ghc-options: -fplugin=DumpCore -fplugin-opt DumpCore:core-html
diff --git a/src/Data/RAList/NonEmpty/Optics.hs b/src/Data/RAList/NonEmpty/Optics.hs
--- a/src/Data/RAList/NonEmpty/Optics.hs
+++ b/src/Data/RAList/NonEmpty/Optics.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP                   #-}
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE RankNTypes            #-}
@@ -27,17 +26,6 @@
 -------------------------------------------------------------------------------
 -- Instances
 -------------------------------------------------------------------------------
-
-#if !MIN_VERSION_optics_core(0,4,0)
-instance L.FunctorWithIndex Int NERAList where
-    imap = imap
-
-instance L.FoldableWithIndex Int NERAList where
-    ifoldMap = ifoldMap
-
-instance L.TraversableWithIndex Int NERAList where
-    itraverse = itraverse
-#endif
 
 instance L.Each Int (NERAList a) (NERAList b) a b
 
diff --git a/src/Data/RAList/Optics.hs b/src/Data/RAList/Optics.hs
--- a/src/Data/RAList/Optics.hs
+++ b/src/Data/RAList/Optics.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP                   #-}
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE RankNTypes            #-}
@@ -30,17 +29,6 @@
 -------------------------------------------------------------------------------
 -- Instances
 -------------------------------------------------------------------------------
-
-#if !MIN_VERSION_optics_core(0,4,0)
-instance L.FunctorWithIndex Int RAList where
-    imap = imap
-
-instance L.FoldableWithIndex Int RAList where
-    ifoldMap = ifoldMap
-
-instance L.TraversableWithIndex Int RAList where
-    itraverse = itraverse
-#endif
 
 instance L.Each Int (RAList a) (RAList b) a b
 
diff --git a/src/Data/RAVec/NonEmpty/Optics.hs b/src/Data/RAVec/NonEmpty/Optics.hs
--- a/src/Data/RAVec/NonEmpty/Optics.hs
+++ b/src/Data/RAVec/NonEmpty/Optics.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP                   #-}
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies          #-}
@@ -34,28 +33,6 @@
 -------------------------------------------------------------------------------
 -- Instances
 -------------------------------------------------------------------------------
-
-#if !MIN_VERSION_optics_core(0,4,0)
-instance L.FunctorWithIndex (PosP b) (NERAVec b) where
-    imap = imap
-
-instance L.FunctorWithIndex (PosP' n b) (NERAVec' n b) where
-    imap = imap'
-
-instance L.FoldableWithIndex (PosP b) (NERAVec b) where
-    ifoldMap = ifoldMap
-    ifoldr   = ifoldr
-
-instance L.FoldableWithIndex (PosP' n b) (NERAVec' n b) where
-    ifoldMap = ifoldMap'
-    ifoldr   = ifoldr'
-
-instance L.TraversableWithIndex (PosP b) (NERAVec b) where
-    itraverse = itraverse
-
-instance L.TraversableWithIndex (PosP' n b) (NERAVec' n b) where
-    itraverse = itraverse'
-#endif
 
 instance L.Each (PosP n) (NERAVec n a) (NERAVec n b) a b where
 
diff --git a/src/Data/RAVec/Optics.hs b/src/Data/RAVec/Optics.hs
--- a/src/Data/RAVec/Optics.hs
+++ b/src/Data/RAVec/Optics.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP                   #-}
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies          #-}
@@ -42,18 +41,6 @@
 -------------------------------------------------------------------------------
 -- Instances
 -------------------------------------------------------------------------------
-
-#if !MIN_VERSION_optics_core(0,4,0)
-instance L.FunctorWithIndex (Pos b) (RAVec b) where
-    imap = imap
-
-instance L.FoldableWithIndex (Pos b) (RAVec b) where
-    ifoldMap = ifoldMap
-    ifoldr   = ifoldr
-
-instance L.TraversableWithIndex (Pos b) (RAVec b) where
-    itraverse = itraverse
-#endif
 
 instance L.Each (Pos n) (RAVec n a) (RAVec n b) a b where
 
diff --git a/src/Data/RAVec/Tree/DF/Optics.hs b/src/Data/RAVec/Tree/DF/Optics.hs
--- a/src/Data/RAVec/Tree/DF/Optics.hs
+++ b/src/Data/RAVec/Tree/DF/Optics.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP                   #-}
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE RankNTypes            #-}
@@ -48,18 +47,6 @@
 -------------------------------------------------------------------------------
 -- Instances
 -------------------------------------------------------------------------------
-
-#if !MIN_VERSION_optics_core(0,4,0)
-instance N.SNatI n => L.FunctorWithIndex (Wrd n) (Tree n) where
-    imap = imap
-
-instance N.SNatI n => L.FoldableWithIndex (Wrd n) (Tree n) where
-    ifoldMap = ifoldMap
-    ifoldr   = ifoldr
-
-instance N.SNatI n => L.TraversableWithIndex (Wrd n) (Tree n) where
-    itraverse = itraverse
-#endif
 
 instance N.SNatI n => L.Each (Wrd n) (Tree n a) (Tree n b) a b
 
diff --git a/src/Data/RAVec/Tree/Optics.hs b/src/Data/RAVec/Tree/Optics.hs
--- a/src/Data/RAVec/Tree/Optics.hs
+++ b/src/Data/RAVec/Tree/Optics.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP                   #-}
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TypeFamilies          #-}
@@ -46,18 +45,6 @@
 -------------------------------------------------------------------------------
 -- Instances
 -------------------------------------------------------------------------------
-
-#if !MIN_VERSION_optics_core(0,4,0)
-instance L.FunctorWithIndex (Wrd n) (Tree n) where
-    imap = imap
-
-instance L.FoldableWithIndex (Wrd n) (Tree n) where
-    ifoldMap = ifoldMap
-    ifoldr   = ifoldr
-
-instance L.TraversableWithIndex (Wrd n) (Tree n) where
-    itraverse = itraverse
-#endif
 
 instance L.Each (Wrd n) (Tree n a) (Tree n b) a b where
 
