diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
@@ -1,32 +1,32 @@
-dist
-dist-newstyle
-docs
-wiki
-TAGS
-tags
-wip
-.DS_Store
-.*.swp
-.*.swo
-*.o
-*.hi
-*~
-*#
-.stack-work/
-cabal-dev
-*.chi
-*.chs.h
-*.dyn_o
-*.dyn_hi
-.hpc
-.hsenv
-.cabal-sandbox/
-cabal.sandbox.config
-*.prof
-*.aux
-*.hp
-*.eventlog
-cabal.project.local
-cabal.project.local~
-.HTF/
-.ghc.environment.*
+dist
+dist-newstyle
+docs
+wiki
+TAGS
+tags
+wip
+.DS_Store
+.*.swp
+.*.swo
+*.o
+*.hi
+*~
+*#
+.stack-work/
+cabal-dev
+*.chi
+*.chs.h
+*.dyn_o
+*.dyn_hi
+.hpc
+.hsenv
+.cabal-sandbox/
+cabal.sandbox.config
+*.prof
+*.aux
+*.hp
+*.eventlog
+cabal.project.local
+cabal.project.local~
+.HTF/
+.ghc.environment.*
diff --git a/.vim.custom b/.vim.custom
--- a/.vim.custom
+++ b/.vim.custom
@@ -1,31 +1,31 @@
-" Add the following to your .vimrc to automatically load this on startup
-
-" if filereadable(".vim.custom")
-"     so .vim.custom
-" endif
-
-function StripTrailingWhitespace()
-  let myline=line(".")
-  let mycolumn = col(".")
-  silent %s/  *$//
-  call cursor(myline, mycolumn)
-endfunction
-
-" enable syntax highlighting
-syntax on
-
-" search for the tags file anywhere between here and /
-set tags=TAGS;/
-
-" highlight tabs and trailing spaces
-set listchars=tab:‗‗,trail:‗
-set list
-
-" f2 runs hasktags
-map <F2> :exec ":!hasktags -x -c --ignore src"<CR><CR>
-
-" strip trailing whitespace before saving
-" au BufWritePre *.hs,*.markdown silent! cal StripTrailingWhitespace()
-
-" rebuild hasktags after saving
-au BufWritePost *.hs silent! :exec ":!hasktags -x -c --ignore src"
+" Add the following to your .vimrc to automatically load this on startup
+
+" if filereadable(".vim.custom")
+"     so .vim.custom
+" endif
+
+function StripTrailingWhitespace()
+  let myline=line(".")
+  let mycolumn = col(".")
+  silent %s/  *$//
+  call cursor(myline, mycolumn)
+endfunction
+
+" enable syntax highlighting
+syntax on
+
+" search for the tags file anywhere between here and /
+set tags=TAGS;/
+
+" highlight tabs and trailing spaces
+set listchars=tab:‗‗,trail:‗
+set list
+
+" f2 runs hasktags
+map <F2> :exec ":!hasktags -x -c --ignore src"<CR><CR>
+
+" strip trailing whitespace before saving
+" au BufWritePre *.hs,*.markdown silent! cal StripTrailingWhitespace()
+
+" rebuild hasktags after saving
+au BufWritePost *.hs silent! :exec ":!hasktags -x -c --ignore src"
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,27 +1,31 @@
-3.4.1 [2023.04.14]
-------------------
-* Add a `Hashable1 Vector` instance.
-* Require `vector-0.12`+ and `hashable-1.2.5.0`+.
-* Drop support for GHC 7.10 and earlier.
-
-3.4
------
-* Support `vector-0.12`
-* Added `Hashable` instances.
-
-3.3.1
------
-* Support `vector` 0.11
-
-3.3.0.1
--------
-* Support for GHC 7.10.1
-
-3.3
----
-* Added more `Semigroup` instances.
-
-3.2.1
------
-* Refactored build system.
-* Removed bounds on dependencies.
+3.4.2 [2023.04.17]
+------------------
+* Remove unused dependency on `semigroups`.
+
+3.4.1 [2023.04.14]
+------------------
+* Add a `Hashable1 Vector` instance.
+* Require `vector-0.12`+ and `hashable-1.2.5.0`+.
+* Drop support for GHC 7.10 and earlier.
+
+3.4
+-----
+* Support `vector-0.12`
+* Added `Hashable` instances.
+
+3.3.1
+-----
+* Support `vector` 0.11
+
+3.3.0.1
+-------
+* Support for GHC 7.10.1
+
+3.3
+---
+* Added more `Semigroup` instances.
+
+3.2.1
+-----
+* Refactored build system.
+* Removed bounds on dependencies.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,30 +1,30 @@
-Copyright (c)2010, Edward Kmett
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-
-    * Neither the name of Edward Kmett nor the names of other
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Copyright (c)2010, Edward Kmett
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * Neither the name of Edward Kmett nor the names of other
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -1,15 +1,15 @@
-vector-instances
-================
-
-[![Hackage](https://img.shields.io/hackage/v/vector-instances.svg)](https://hackage.haskell.org/package/vector-instances) [![Build Status](https://github.com/ekmett/vector-instances/workflows/Haskell-CI/badge.svg)](https://github.com/ekmett/vector-instances/actions?query=workflow%3AHaskell-CI)
-
-This provides a standard place for lots of orphan instances for the `vector` package.
-
-Contact Information
--------------------
-
-Contributions and bug reports are welcome!
-
-Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.
-
--Edward Kmett
+vector-instances
+================
+
+[![Hackage](https://img.shields.io/hackage/v/vector-instances.svg)](https://hackage.haskell.org/package/vector-instances) [![Build Status](https://github.com/ekmett/vector-instances/workflows/Haskell-CI/badge.svg)](https://github.com/ekmett/vector-instances/actions?query=workflow%3AHaskell-CI)
+
+This provides a standard place for lots of orphan instances for the `vector` package.
+
+Contact Information
+-------------------
+
+Contributions and bug reports are welcome!
+
+Please feel free to contact me through github or on the #haskell IRC channel on irc.freenode.net.
+
+-Edward Kmett
diff --git a/Setup.lhs b/Setup.lhs
--- a/Setup.lhs
+++ b/Setup.lhs
@@ -1,3 +1,3 @@
-#!/usr/bin/env runhaskell
-> import Distribution.Simple
-> main = defaultMainWithHooks simpleUserHooks
+#!/usr/bin/env runhaskell
+> import Distribution.Simple
+> main = defaultMainWithHooks simpleUserHooks
diff --git a/src/Data/Vector/Instances.hs b/src/Data/Vector/Instances.hs
--- a/src/Data/Vector/Instances.hs
+++ b/src/Data/Vector/Instances.hs
@@ -1,157 +1,157 @@
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
------------------------------------------------------------------------------
--- |
--- Module      :  Data.Vector.Instances
--- Copyright   :  (c) Edward Kmett 2010
--- License     :  BSD3
--- Maintainer  :  ekmett@gmail.com
--- Stability   :  experimental
--- Portability :  portable
---
------------------------------------------------------------------------------
-
-module Data.Vector.Instances () where
-
-import Prelude hiding ((++), drop, length)
-import Control.Applicative
-import Control.Monad
-import Data.Semigroup
-#ifdef MIN_VERSION_hashable
-import Data.Hashable (Hashable(..))
-import Data.Hashable.Lifted (Hashable1(..))
-#endif
-import Data.Key
-import Data.Functor.Bind
-import Data.Functor.Extend
-import Data.Functor.Plus
-import Data.Pointed
-import Data.Monoid (Monoid(..))
-import qualified Data.Vector as Vector
-import qualified Data.Vector.Generic as G
-#if MIN_VERSION_vector(0,11,0)
-import qualified Data.Vector.Fusion.Bundle as Stream
-import Data.Vector.Fusion.Bundle.Size
-#else
-import qualified Data.Vector.Fusion.Stream as Stream
-import Data.Vector.Fusion.Stream.Size
-#endif
-import Data.Vector (Vector,(++),drop,length,imap,ifoldr, ifoldl, izipWith,(!?),(//), generate)
-import qualified Data.Vector as Vector
-import qualified Data.Vector.Unboxed as Unboxed
-import qualified Data.Vector.Storable as Storable
-import qualified Data.Vector.Primitive as Primitive
-
-type instance Key Vector = Int
-
-instance Keyed Vector where
-  mapWithKey = Vector.imap
-  {-# INLINE mapWithKey #-}
-
-instance Zip Vector where
-  zipWith = Vector.zipWith
-  {-# INLINE zipWith #-}
-
-instance ZipWithKey Vector where
-  zipWithKey = Vector.izipWith
-  {-# INLINE zipWithKey #-}
-
-instance Indexable Vector where
-  index = (Vector.!)
-  {-# INLINE index #-}
-
-instance Lookup Vector where
-  lookup = flip (!?)
-  {-# INLINE lookup #-}
-
-instance Adjustable Vector where
-  adjust f n v = case v !? n of
-    Just a ->  v // [(n, f a)]
-    Nothing -> v
-  {-# INLINE adjust #-}
-
-  replace n a v = v // [(n,a)]
-  {-# INLINE replace #-}
-
-instance FoldableWithKey Vector where
-  foldrWithKey = Vector.ifoldr
-  {-# INLINE foldrWithKey #-}
-  foldlWithKey = Vector.ifoldl
-  {-# INLINE foldlWithKey #-}
-
-instance Apply Vector where
-  fs <.> as =
-    G.unstream $ Stream.sized results (Exact n)
-    where
-      n = Vector.length fs * Vector.length as
-      results = Stream.concatMap body $ G.stream fs
-      body f = Stream.map f $ G.stream as
-  {-# INLINE (<.>) #-}
-
-instance Pointed Vector where
-  point = Vector.singleton
-  {-# INLINE point #-}
-
-instance Bind Vector where
-  v >>- f = Vector.concatMap f v
-  {-# INLINE (>>-) #-}
-
-instance Alt Vector where
-  (<!>) = (++)
-  {-# INLINE (<!>) #-}
-
-instance Plus Vector where
-  zero = Vector.empty
-  {-# INLINE zero #-}
-
-instance TraversableWithKey Vector where
-  traverseWithKey f v
-     = Vector.fromListN (Vector.length v) <$> traverseWithKey f (Vector.toList v)
-  {-# INLINE traverseWithKey #-}
-
-instance Extend Vector where
-  duplicated v = generate (length v) (`drop` v)
-  {-# INLINE duplicated #-}
-  extended f v = generate (length v) (\n -> f (drop n v))
-  {-# INLINE extended #-}
-
-#if !(MIN_VERSION_vector(0,12,0))
-instance Semigroup (Vector a) where
-  (<>) = (++)
-  {-# INLINE (<>) #-}
-
-instance Unboxed.Unbox a => Semigroup (Unboxed.Vector a) where
-  (<>) = (Unboxed.++)
-  {-# INLINE (<>) #-}
-
-instance Storable.Storable a => Semigroup (Storable.Vector a) where
-  (<>) = (Storable.++)
-  {-# INLINE (<>) #-}
-
-instance Primitive.Prim a => Semigroup (Primitive.Vector a) where
-  (<>) = (Primitive.++)
-  {-# INLINE (<>) #-}
-#endif
-
-#ifdef MIN_VERSION_hashable
-instance (Hashable a) => Hashable (Vector a) where
-  hashWithSalt salt = hashWithSalt salt . Vector.toList
-  {-# INLINE hashWithSalt #-}
-
-instance (Unboxed.Unbox a, Hashable a) => Hashable (Unboxed.Vector a) where
-  hashWithSalt salt = hashWithSalt salt . Unboxed.toList
-  {-# INLINE hashWithSalt #-}
-
-instance (Storable.Storable a, Hashable a) => Hashable (Storable.Vector a) where
-  hashWithSalt salt = hashWithSalt salt . Storable.toList
-  {-# INLINE hashWithSalt #-}
-
-instance (Primitive.Prim a, Hashable a) => Hashable (Primitive.Vector a) where
-  hashWithSalt salt = hashWithSalt salt . Primitive.toList
-  {-# INLINE hashWithSalt #-}
-
-instance Hashable1 Vector where
-  liftHashWithSalt itemHashWithSalt salt = liftHashWithSalt itemHashWithSalt salt . Vector.toList
-  {-# INLINE liftHashWithSalt #-}
-#endif
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  Data.Vector.Instances
+-- Copyright   :  (c) Edward Kmett 2010
+-- License     :  BSD3
+-- Maintainer  :  ekmett@gmail.com
+-- Stability   :  experimental
+-- Portability :  portable
+--
+-----------------------------------------------------------------------------
+
+module Data.Vector.Instances () where
+
+import Prelude hiding ((++), drop, length)
+import Control.Applicative
+import Control.Monad
+import Data.Semigroup
+#ifdef MIN_VERSION_hashable
+import Data.Hashable (Hashable(..))
+import Data.Hashable.Lifted (Hashable1(..))
+#endif
+import Data.Key
+import Data.Functor.Bind
+import Data.Functor.Extend
+import Data.Functor.Plus
+import Data.Pointed
+import Data.Monoid (Monoid(..))
+import qualified Data.Vector as Vector
+import qualified Data.Vector.Generic as G
+#if MIN_VERSION_vector(0,11,0)
+import qualified Data.Vector.Fusion.Bundle as Stream
+import Data.Vector.Fusion.Bundle.Size
+#else
+import qualified Data.Vector.Fusion.Stream as Stream
+import Data.Vector.Fusion.Stream.Size
+#endif
+import Data.Vector (Vector,(++),drop,length,imap,ifoldr, ifoldl, izipWith,(!?),(//), generate)
+import qualified Data.Vector as Vector
+import qualified Data.Vector.Unboxed as Unboxed
+import qualified Data.Vector.Storable as Storable
+import qualified Data.Vector.Primitive as Primitive
+
+type instance Key Vector = Int
+
+instance Keyed Vector where
+  mapWithKey = Vector.imap
+  {-# INLINE mapWithKey #-}
+
+instance Zip Vector where
+  zipWith = Vector.zipWith
+  {-# INLINE zipWith #-}
+
+instance ZipWithKey Vector where
+  zipWithKey = Vector.izipWith
+  {-# INLINE zipWithKey #-}
+
+instance Indexable Vector where
+  index = (Vector.!)
+  {-# INLINE index #-}
+
+instance Lookup Vector where
+  lookup = flip (!?)
+  {-# INLINE lookup #-}
+
+instance Adjustable Vector where
+  adjust f n v = case v !? n of
+    Just a ->  v // [(n, f a)]
+    Nothing -> v
+  {-# INLINE adjust #-}
+
+  replace n a v = v // [(n,a)]
+  {-# INLINE replace #-}
+
+instance FoldableWithKey Vector where
+  foldrWithKey = Vector.ifoldr
+  {-# INLINE foldrWithKey #-}
+  foldlWithKey = Vector.ifoldl
+  {-# INLINE foldlWithKey #-}
+
+instance Apply Vector where
+  fs <.> as =
+    G.unstream $ Stream.sized results (Exact n)
+    where
+      n = Vector.length fs * Vector.length as
+      results = Stream.concatMap body $ G.stream fs
+      body f = Stream.map f $ G.stream as
+  {-# INLINE (<.>) #-}
+
+instance Pointed Vector where
+  point = Vector.singleton
+  {-# INLINE point #-}
+
+instance Bind Vector where
+  v >>- f = Vector.concatMap f v
+  {-# INLINE (>>-) #-}
+
+instance Alt Vector where
+  (<!>) = (++)
+  {-# INLINE (<!>) #-}
+
+instance Plus Vector where
+  zero = Vector.empty
+  {-# INLINE zero #-}
+
+instance TraversableWithKey Vector where
+  traverseWithKey f v
+     = Vector.fromListN (Vector.length v) <$> traverseWithKey f (Vector.toList v)
+  {-# INLINE traverseWithKey #-}
+
+instance Extend Vector where
+  duplicated v = generate (length v) (`drop` v)
+  {-# INLINE duplicated #-}
+  extended f v = generate (length v) (\n -> f (drop n v))
+  {-# INLINE extended #-}
+
+#if !(MIN_VERSION_vector(0,12,0))
+instance Semigroup (Vector a) where
+  (<>) = (++)
+  {-# INLINE (<>) #-}
+
+instance Unboxed.Unbox a => Semigroup (Unboxed.Vector a) where
+  (<>) = (Unboxed.++)
+  {-# INLINE (<>) #-}
+
+instance Storable.Storable a => Semigroup (Storable.Vector a) where
+  (<>) = (Storable.++)
+  {-# INLINE (<>) #-}
+
+instance Primitive.Prim a => Semigroup (Primitive.Vector a) where
+  (<>) = (Primitive.++)
+  {-# INLINE (<>) #-}
+#endif
+
+#ifdef MIN_VERSION_hashable
+instance (Hashable a) => Hashable (Vector a) where
+  hashWithSalt salt = hashWithSalt salt . Vector.toList
+  {-# INLINE hashWithSalt #-}
+
+instance (Unboxed.Unbox a, Hashable a) => Hashable (Unboxed.Vector a) where
+  hashWithSalt salt = hashWithSalt salt . Unboxed.toList
+  {-# INLINE hashWithSalt #-}
+
+instance (Storable.Storable a, Hashable a) => Hashable (Storable.Vector a) where
+  hashWithSalt salt = hashWithSalt salt . Storable.toList
+  {-# INLINE hashWithSalt #-}
+
+instance (Primitive.Prim a, Hashable a) => Hashable (Primitive.Vector a) where
+  hashWithSalt salt = hashWithSalt salt . Primitive.toList
+  {-# INLINE hashWithSalt #-}
+
+instance Hashable1 Vector where
+  liftHashWithSalt itemHashWithSalt salt = liftHashWithSalt itemHashWithSalt salt . Vector.toList
+  {-# INLINE liftHashWithSalt #-}
+#endif
diff --git a/vector-instances.cabal b/vector-instances.cabal
--- a/vector-instances.cabal
+++ b/vector-instances.cabal
@@ -1,56 +1,55 @@
-name:                vector-instances
-version:             3.4.1
-synopsis:            Orphan Instances for 'Data.Vector'
-description:         Orphan Instances for 'Data.Vector'.
-homepage:            http://github.com/ekmett/vector-instances
-bug-reports:         http://github.com/ekmett/vector-instances/issues
-license:             BSD3
-license-file:        LICENSE
-author:              Edward Kmett
-maintainer:          ekmett@gmail.com
-category:            Data, Data Structures
-build-type:          Simple
-cabal-version:       >=1.10
-tested-with:
-  GHC==8.0.2,
-  GHC==8.2.2,
-  GHC==8.4.4,
-  GHC==8.6.5,
-  GHC==8.8.4,
-  GHC==8.10.7,
-  GHC==9.0.2,
-  GHC==9.2.7,
-  GHC==9.4.4,
-  GHC==9.6.1
-extra-source-files:
-  .vim.custom
-  .gitignore
-  CHANGELOG.markdown
-  README.markdown
-
-source-repository head
-  type: git
-  location: git://github.com/ekmett/vector-instances.git
-
-flag hashable
-  description:
-    You can disable the use of the `hashable` package using `-f-hashable`.
-  default: True
-  manual: True
-
-library
-  default-language: Haskell2010
-  other-extensions: TypeFamilies
-  exposed-modules: Data.Vector.Instances
-  hs-source-dirs: src
-  build-depends:
-    base          >= 4.9     && < 5,
-    vector        >= 0.12    && < 0.14,
-    semigroupoids >= 3,
-    semigroups    >= 0.8.3.1,
-    comonad       >= 3,
-    pointed       >= 3,
-    keys          >= 3
-
-  if flag(hashable)
-    build-depends:  hashable >= 1.2.5.0
+name:                vector-instances
+version:             3.4.2
+synopsis:            Orphan Instances for 'Data.Vector'
+description:         Orphan Instances for 'Data.Vector'.
+homepage:            http://github.com/ekmett/vector-instances
+bug-reports:         http://github.com/ekmett/vector-instances/issues
+license:             BSD3
+license-file:        LICENSE
+author:              Edward Kmett
+maintainer:          ekmett@gmail.com
+category:            Data, Data Structures
+build-type:          Simple
+cabal-version:       >=1.10
+tested-with:
+  GHC==8.0.2,
+  GHC==8.2.2,
+  GHC==8.4.4,
+  GHC==8.6.5,
+  GHC==8.8.4,
+  GHC==8.10.7,
+  GHC==9.0.2,
+  GHC==9.2.7,
+  GHC==9.4.4,
+  GHC==9.6.1
+extra-source-files:
+  .vim.custom
+  .gitignore
+  CHANGELOG.markdown
+  README.markdown
+
+source-repository head
+  type: git
+  location: git://github.com/ekmett/vector-instances.git
+
+flag hashable
+  description:
+    You can disable the use of the `hashable` package using `-f-hashable`.
+  default: True
+  manual: True
+
+library
+  default-language: Haskell2010
+  other-extensions: TypeFamilies
+  exposed-modules: Data.Vector.Instances
+  hs-source-dirs: src
+  build-depends:
+    base          >= 4.9     && < 5,
+    vector        >= 0.12    && < 0.14,
+    semigroupoids >= 3,
+    comonad       >= 3,
+    pointed       >= 3,
+    keys          >= 3
+
+  if flag(hashable)
+    build-depends:  hashable >= 1.2.5.0
