diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,8 @@
+# 2
+
+Drop `unordered-containers` and `vector` support.
+This package have included instance for long enough already.
+
 # 1.0.1
 
 Add instances for `Tree` and `Seq`
diff --git a/functor-classes-compat.cabal b/functor-classes-compat.cabal
--- a/functor-classes-compat.cabal
+++ b/functor-classes-compat.cabal
@@ -1,14 +1,14 @@
 name:               functor-classes-compat
-version:            1.0.1
+version:            2
 synopsis:           Data.Functor.Classes instances for core packages
 description:
   "Data.Functor.Classes" instances for core packages:
   .
   * containers
   .
-  * vector
-  .
-  * unordered-containers
+  This package used to provide instances for @unordered-containers@
+  and @vector@, but  these packages are since been upgraded.
+  Use @unordered-containers >=0.2.8.0@ and @vector >=0.12@.
 
 homepage:           https://github.com/phadej/functor-classes-compat#readme
 bug-reports:        https://github.com/phadej/functor-classes-compat/issues
@@ -31,7 +31,9 @@
    || ==8.4.4
    || ==8.6.5
    || ==8.8.4
-   || ==8.10.3
+   || ==8.10.4
+   || ==9.0.1
+   || ==9.2.1
 
 flag base-transformers-1
   description:
@@ -45,21 +47,11 @@
   manual:      False
   default:     True
 
-flag vector
-  description: 'vector >= 0.12'
-  manual:      False
-  default:     True
-
 flag containers
   description: 'containers >= 0.5.9.1'
   manual:      False
   default:     True
 
-flag unordered-containers
-  description: 'unordered-containers >= 0.2.8.0'
-  manual:      False
-  default:     True
-
 source-repository head
   type:     git
   location: https://github.com/phadej/functor-classes-compat
@@ -71,13 +63,9 @@
     Data.IntMap.Functor.Classes
     Data.Sequence.Functor.Classes
     Data.Tree.Functor.Classes
-    Data.Vector.Functor.Classes
-    Data.HashSet.Functor.Classes
-    Data.HashMap.Functor.Classes
 
   default-language: Haskell2010
   ghc-options:      -Wall
-  build-depends:    hashable >=1.0.1.1 && <1.4
 
   -- base and transformer dependencies:
   -- t t: base >= 4.9
@@ -88,7 +76,7 @@
   -- The order is chosen so 'f f' combination is only requiring src-old
   if flag(base-transformers-1)
     if flag(base-transformers-2)
-      build-depends: base >=4.9 && <4.16
+      build-depends: base >=4.9 && <4.17
 
     else
       build-depends:
@@ -102,7 +90,7 @@
       build-depends:
           base                 >=4.5 && <4.9
         , transformers         >=0   && <0.4
-        , transformers-compat  >=0.5 && <0.7
+        , transformers-compat  >=0.5 && <0.8
 
     else
       build-depends:
@@ -131,49 +119,3 @@
 
     else
       hs-source-dirs: src-explicit/containers
-
-  -- unordered-containers
-  if flag(unordered-containers)
-    build-depends: unordered-containers >=0.2.8.0 && <0.3
-
-    if (flag(base-transformers-1) && flag(base-transformers-2))
-      hs-source-dirs: src-none/unordered-containers
-
-    else
-      if (!flag(base-transformers-1) && !flag(base-transformers-2))
-        hs-source-dirs: src-implicit/unordered-containers
-
-      else
-        hs-source-dirs: src-explicit/unordered-containers
-
-  else
-    build-depends: unordered-containers >=0.2.7.1 && <0.2.8.0
-
-    if (!flag(base-transformers-1) && !flag(base-transformers-2))
-      hs-source-dirs: src-implicit/unordered-containers
-
-    else
-      hs-source-dirs: src-explicit/unordered-containers
-
-  -- vector
-  if flag(vector)
-    build-depends: vector ==0.12.*
-
-    if (flag(base-transformers-1) && flag(base-transformers-2))
-      hs-source-dirs: src-none/vector
-
-    else
-      if (!flag(base-transformers-1) && !flag(base-transformers-2))
-        hs-source-dirs: src-implicit/vector
-
-      else
-        hs-source-dirs: src-explicit/vector
-
-  else
-    build-depends: vector >=0.11.0.0 && <0.12
-
-    if (!flag(base-transformers-1) && !flag(base-transformers-2))
-      hs-source-dirs: src-implicit/vector
-
-    else
-      hs-source-dirs: src-explicit/vector
diff --git a/src-explicit/unordered-containers/Data/HashMap/Functor/Classes.hs b/src-explicit/unordered-containers/Data/HashMap/Functor/Classes.hs
deleted file mode 100644
--- a/src-explicit/unordered-containers/Data/HashMap/Functor/Classes.hs
+++ /dev/null
@@ -1,42 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Data.HashMap.Functor.Classes () where
-
-import Data.Functor.Classes
-import Data.Hashable        (Hashable)
-import Data.HashMap.Strict  (HashMap, fromList, size, toList)
-
-import qualified Data.Map                 as M
-import           Data.Map.Functor.Classes ()
-
--- | Unordered-containers don't export internals, so we cannot write correct `Eq2`
--- instance. For the same reason, the context is over-restrictive too.
-instance Ord k => Eq1 (HashMap k) where
-    liftEq eqv m n =
-        size m == size n && equals eqv m n
-
-instance Show2 HashMap where
-    liftShowsPrec2 spk slk spv slv d m =
-        showsUnaryWith (liftShowsPrec sp sl) "fromList" d (toList m)
-      where
-        sp = liftShowsPrec2 spk slk spv slv
-        sl = liftShowList2 spk slk spv slv
-
-instance Show k => Show1 (HashMap k) where
-    liftShowsPrec = liftShowsPrec2 showsPrec showList
-
-instance (Eq k, Hashable k, Read k) => Read1 (HashMap k) where
-    liftReadsPrec rp rl = readsData $
-        readsUnaryWith (liftReadsPrec rp' rl') "fromList" fromList
-      where
-        rp' = liftReadsPrec rp rl
-        rl' = liftReadList rp rl
-
--------------------------------------------------------------------------------
--- unordered-containers don't expose internals, so this is difficult
-
-equals
-    :: Ord k
-    => (v -> v' -> Bool)
-    -> HashMap k v -> HashMap k v'
-    -> Bool
-equals eqv m n = liftEq eqv (M.fromList $ toList m) (M.fromList $ toList n)
diff --git a/src-explicit/unordered-containers/Data/HashSet/Functor/Classes.hs b/src-explicit/unordered-containers/Data/HashSet/Functor/Classes.hs
deleted file mode 100644
--- a/src-explicit/unordered-containers/Data/HashSet/Functor/Classes.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Data.HashSet.Functor.Classes () where
-
-import Data.Functor.Classes
-import Data.HashSet         (HashSet, toList)
-
-instance Show1 HashSet where
-    liftShowsPrec sp sl d m =
-        showsUnaryWith (liftShowsPrec sp sl) "fromList" d (toList m)
diff --git a/src-explicit/vector/Data/Vector/Functor/Classes.hs b/src-explicit/vector/Data/Vector/Functor/Classes.hs
deleted file mode 100644
--- a/src-explicit/vector/Data/Vector/Functor/Classes.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Data.Vector.Functor.Classes () where
-
-import Data.Functor.Classes
-import Data.Vector          (Vector, fromList, length, toList)
-
-instance Eq1 Vector where
-    liftEq eq m n =
-        Data.Vector.length m == Data.Vector.length n && liftEq eq (toList m) (toList n)
-
-instance Ord1 Vector where
-    liftCompare cmp m n =
-        liftCompare cmp (toList m) (toList n)
-
-instance Show1 Vector where
-    liftShowsPrec _sp sl _d m = sl (toList m)
-
-instance Read1 Vector where
-    liftReadsPrec _rp rl _d s =
-        [ (fromList l, s') | (l, s') <- rl s ]
diff --git a/src-implicit/unordered-containers/Data/HashMap/Functor/Classes.hs b/src-implicit/unordered-containers/Data/HashMap/Functor/Classes.hs
deleted file mode 100644
--- a/src-implicit/unordered-containers/Data/HashMap/Functor/Classes.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Data.HashMap.Functor.Classes () where
-
-import Data.Functor.Classes
-import Data.Hashable        (Hashable)
-import Data.HashMap.Strict  (HashMap)
-
-instance Eq k => Eq1 (HashMap k) where eq1 = (==)
-instance Show k => Show1 (HashMap k) where showsPrec1 = showsPrec
-instance (Eq k, Hashable k, Read k) => Read1 (HashMap k) where readsPrec1 = readsPrec
diff --git a/src-implicit/unordered-containers/Data/HashSet/Functor/Classes.hs b/src-implicit/unordered-containers/Data/HashSet/Functor/Classes.hs
deleted file mode 100644
--- a/src-implicit/unordered-containers/Data/HashSet/Functor/Classes.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Data.HashSet.Functor.Classes () where
-
-import Data.Functor.Classes
-import Data.HashSet         (HashSet)
-
-instance Show1 HashSet where showsPrec1 = showsPrec
diff --git a/src-implicit/vector/Data/Vector/Functor/Classes.hs b/src-implicit/vector/Data/Vector/Functor/Classes.hs
deleted file mode 100644
--- a/src-implicit/vector/Data/Vector/Functor/Classes.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-module Data.Vector.Functor.Classes () where
-
-import Data.Functor.Classes
-import Data.Vector          (Vector)
-
-instance Eq1 Vector where eq1 = (==)
-instance Ord1 Vector where compare1 = compare
-instance Show1 Vector where showsPrec1 = showsPrec
-instance Read1 Vector where readsPrec1 = readsPrec
diff --git a/src-none/unordered-containers/Data/HashMap/Functor/Classes.hs b/src-none/unordered-containers/Data/HashMap/Functor/Classes.hs
deleted file mode 100644
--- a/src-none/unordered-containers/Data/HashMap/Functor/Classes.hs
+++ /dev/null
@@ -1,1 +0,0 @@
-module Data.HashMap.Functor.Classes () where
diff --git a/src-none/unordered-containers/Data/HashSet/Functor/Classes.hs b/src-none/unordered-containers/Data/HashSet/Functor/Classes.hs
deleted file mode 100644
--- a/src-none/unordered-containers/Data/HashSet/Functor/Classes.hs
+++ /dev/null
@@ -1,1 +0,0 @@
-module Data.HashSet.Functor.Classes () where
diff --git a/src-none/vector/Data/Vector/Functor/Classes.hs b/src-none/vector/Data/Vector/Functor/Classes.hs
deleted file mode 100644
--- a/src-none/vector/Data/Vector/Functor/Classes.hs
+++ /dev/null
@@ -1,1 +0,0 @@
-module Data.Vector.Functor.Classes () where
