diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for vec
 
+## 0.5.1
+
+- Support GHC-8.6.5...9.10.1
+
 ## 0.5
 
 - Remove PigeonHole module. It didn't work well.
diff --git a/src/Control/Lens/Yocto.hs b/src/Control/Lens/Yocto.hs
--- a/src/Control/Lens/Yocto.hs
+++ b/src/Control/Lens/Yocto.hs
@@ -43,9 +43,7 @@
 import Prelude         (Either (..), Maybe, either, maybe, (.))
 #endif
 
-#if MIN_VERSION_base(4,11,0)
 import Data.Functor ((<&>))
-#endif
 
 -------------------------------------------------------------------------------
 -- Types
@@ -86,17 +84,6 @@
 over :: LensLike Identity s t a b -> (a -> b) -> s -> t
 over = coerce
 {-# INLINE over #-}
-
--------------------------------------------------------------------------------
--- Operators
--------------------------------------------------------------------------------
-
-#if !MIN_VERSION_base(4,11,0)
-(<&>) :: Functor f => f a -> (a -> b) -> f b
-as <&> f = fmap f as
-
-infixl 1 <&>
-#endif
 
 -------------------------------------------------------------------------------
 -- Constructors
diff --git a/src/Data/Vec/DataFamily/SpineStrict.hs b/src/Data/Vec/DataFamily/SpineStrict.hs
--- a/src/Data/Vec/DataFamily/SpineStrict.hs
+++ b/src/Data/Vec/DataFamily/SpineStrict.hs
@@ -240,12 +240,10 @@
     foldr  = foldr
     -- foldl' = foldl'
 
-#if MIN_VERSION_base(4,8,0)
     null    = null
     length  = length
     sum     = sum
     product = product
-#endif
 
 #ifdef MIN_VERSION_semigroupoids
 instance (N.SNatI m, n ~ 'S m) => I.Foldable1 (Vec n) where
@@ -291,9 +289,7 @@
     (<*>)  = zipWith ($)
     _ *> x = x
     x <* _ = x
-#if MIN_VERSION_base(4,10,0)
     liftA2 = zipWith
-#endif
 
 instance N.SNatI n => Monad (Vec n) where
     return = pure
@@ -335,25 +331,6 @@
 -- Data.Functor.Classes
 -------------------------------------------------------------------------------
 
-#ifndef MIN_VERSION_transformers_compat
-#define MIN_VERSION_transformers_compat(x,y,z) 0
-#endif
-
-
-#if MIN_VERSION_base(4,9,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-#else
-#if MIN_VERSION_transformers(0,5,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-#else
-#if MIN_VERSION_transformers_compat(0,5,0) && !MIN_VERSION_transformers(0,4,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-#endif
-#endif
-#endif
-
-#if LIFTED_FUNCTOR_CLASSES
-
 -- | @since 0.4
 instance N.SNatI n => Eq1 (Vec n) where
     liftEq :: forall a b. (a -> b -> Bool) -> Vec n a -> Vec n b -> Bool
@@ -388,16 +365,7 @@
             $ sp 6 x
             . showString " ::: "
             . go 5 xs
-#else
--- | @since 0.4
-instance N.SNatI n => Eq1 (Vec n) where eq1 = (==)
 
--- | @since 0.4
-instance N.SNatI n => Ord1 (Vec n) where compare1 = compare
-
--- | @since 0.4
-instance N.SNatI n => Show1 (Vec n) where showsPrec1 = showsPrec
-#endif
 -------------------------------------------------------------------------------
 -- Construction
 -------------------------------------------------------------------------------
diff --git a/src/Data/Vec/Lazy.hs b/src/Data/Vec/Lazy.hs
--- a/src/Data/Vec/Lazy.hs
+++ b/src/Data/Vec/Lazy.hs
@@ -183,12 +183,10 @@
     foldr  = foldr
     foldl' = foldl'
 
-#if MIN_VERSION_base(4,8,0)
     null    = null
     length  = length
     sum     = sum
     product = product
-#endif
 
 instance I.Traversable (Vec n) where
     traverse = traverse
@@ -229,9 +227,7 @@
     (<*>)  = zipWith ($)
     _ *> x = x
     x <* _ = x
-#if MIN_VERSION_base(4,10,0)
     liftA2 = zipWith
-#endif
 
 instance N.SNatI n => Monad (Vec n) where
     return = pure
@@ -277,23 +273,6 @@
 -- Data.Functor.Classes
 -------------------------------------------------------------------------------
 
-#ifndef MIN_VERSION_transformers_compat
-#define MIN_VERSION_transformers_compat(x,y,z) 0
-#endif
-
-#if MIN_VERSION_base(4,9,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-#else
-#if MIN_VERSION_transformers(0,5,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-#else
-#if MIN_VERSION_transformers_compat(0,5,0) && !MIN_VERSION_transformers(0,4,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-#endif
-#endif
-#endif
-
-#if LIFTED_FUNCTOR_CLASSES
 -- | @since 0.4
 instance Eq1 (Vec n) where
     liftEq _eq VNil       VNil       = True
@@ -311,16 +290,6 @@
         $ sp 6 x
         . showString " ::: "
         . liftShowsPrec sp sl 5 xs
-#else
--- | @since 0.4
-instance Eq1 (Vec n) where eq1 = (==)
-
--- | @since 0.4
-instance Ord1 (Vec n) where compare1 = compare
-
--- | @since 0.4
-instance Show1 (Vec n) where showsPrec1 = showsPrec
-#endif
 
 -------------------------------------------------------------------------------
 -- Construction
diff --git a/src/Data/Vec/Pull.hs b/src/Data/Vec/Pull.hs
--- a/src/Data/Vec/Pull.hs
+++ b/src/Data/Vec/Pull.hs
@@ -148,9 +148,7 @@
     (<*>)  = zipWith ($)
     _ *> x = x
     x <* _ = x
-#if MIN_VERSION_base(4,10,0)
     liftA2 = zipWith
-#endif
 
 instance Monad (Vec n) where
     return = pure
diff --git a/vec.cabal b/vec.cabal
--- a/vec.cabal
+++ b/vec.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               vec
-version:            0.5
+version:            0.5.1
 synopsis:           Vec: length-indexed (sized) list
 category:           Data, Dependent Types
 description:
@@ -70,18 +70,15 @@
 build-type:         Simple
 extra-source-files: ChangeLog.md
 tested-with:
-  GHC ==7.8.4
-   || ==7.10.3
-   || ==8.0.2
-   || ==8.2.2
-   || ==8.4.4
-   || ==8.6.5
+  GHC ==8.6.5
    || ==8.8.4
    || ==8.10.7
    || ==9.0.2
-   || ==9.2.7
-   || ==9.4.4
-   || ==9.6.1
+   || ==9.2.8
+   || ==9.4.8
+   || ==9.6.5
+   || ==9.8.2
+   || ==9.10.1
 
 source-repository head
   type:     git
@@ -123,38 +120,28 @@
 
   -- GHC boot libs
   build-depends:
-    , base          >=4.7     && <4.19
-    , deepseq       >=1.3.0.1 && <1.5
-    , transformers  >=0.3.0.0 && <0.7
-
-  if !impl(ghc >=8.0)
-    build-depends: semigroups >=0.18.4 && <0.21
-
-  -- Ensure Data.Functor.Classes is always available
-  if impl(ghc >=7.10)
-    build-depends: transformers >=0.4.2.0
-
-  else
-    build-depends: transformers-compat ^>=0.6.5 || ^>=0.7.1
+    , base          >=4.12.0.0 && <4.21
+    , deepseq       >=1.4.4.0  && <1.6
+    , transformers  >=0.5.6.2  && <0.7
 
   -- siblings
-  build-depends:            fin ^>=0.3
+  build-depends:            fin ^>=0.3.1
 
   -- other dependencies
   build-depends:
-    , boring               ^>=0.2
-    , hashable             >=1.2.7.0 && <1.5
-    , indexed-traversable  ^>=0.1.1
-    , QuickCheck           ^>=2.14.2
+    , boring               ^>=0.2.2
+    , hashable             ^>=1.4.4.0
+    , indexed-traversable  ^>=0.1.4
+    , QuickCheck           ^>=2.14.2  || ^>=2.15.0.1
 
   if flag(distributive)
-    build-depends: distributive >=0.5.3 && <0.7
+    build-depends: distributive ^>=0.6.2
 
     if flag(adjunctions)
-      build-depends: adjunctions ^>=4.4
+      build-depends: adjunctions ^>=4.4.2
 
   if flag(semigroupoids)
-    build-depends: semigroupoids ^>=5.3.5 || ^>=6
+    build-depends: semigroupoids ^>=6.0.1
 
   other-extensions:
     CPP
@@ -182,15 +169,11 @@
   default-language: Haskell2010
   build-depends:
     , base
-    , base-compat
     , fin
-    , inspection-testing  ^>=0.4.2.2 || ^>=0.5.0.1
+    , inspection-testing  ^>=0.5.0.3
     , tagged
     , vec
 
-  if !impl(ghc >=8.0)
-    buildable: False
-
 benchmark bench
   type:             exitcode-stdio-1.0
   main-is:          Bench.hs
@@ -200,7 +183,7 @@
   other-modules:    DotProduct
   build-depends:
     , base
-    , criterion  >=1.4.0.0 && <1.7
+    , criterion  ^>=1.6.3.0
     , fin
     , vec
     , vector
