vector-instances 3.4 → 3.4.1
raw patch · 10 files changed
+351/−431 lines, 10 filesdep ~basedep ~hashabledep ~vectorsetup-changed
Dependency ranges changed: base, hashable, vector
Files
- .ghci +0/−1
- .gitignore +32/−13
- .travis.yml +0/−112
- .vim.custom +31/−31
- CHANGELOG.markdown +27/−21
- LICENSE +30/−30
- README.markdown +15/−15
- Setup.lhs +3/−3
- src/Data/Vector/Instances.hs +157/−152
- vector-instances.cabal +56/−53
− .ghci
@@ -1,1 +0,0 @@-:set -isrc -idist/build/autogen -optP-include -optPdist/build/autogen/cabal_macros.h
.gitignore view
@@ -1,13 +1,32 @@-dist-docs-wiki-TAGS-tags-wip-.DS_Store-.*.swp-.*.swo-*.o-*.hi-*~-*#+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.*
− .travis.yml
@@ -1,112 +0,0 @@-# This file has been generated -- see https://github.com/hvr/multi-ghc-travis-language: c-sudo: false--cache:- directories:- - $HOME/.cabsnap- - $HOME/.cabal/packages--before_cache:- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/build-reports.log- - rm -fv $HOME/.cabal/packages/hackage.haskell.org/00-index.tar--matrix:- include:- - env: CABALVER=1.18 GHCVER=7.0.4- compiler: ": #GHC 7.0.4"- addons: {apt: {packages: [cabal-install-1.18,ghc-7.0.4], sources: [hvr-ghc]}}- - env: CABALVER=1.18 GHCVER=7.2.2- compiler: ": #GHC 7.2.2"- addons: {apt: {packages: [cabal-install-1.18,ghc-7.2.2], sources: [hvr-ghc]}}- - env: CABALVER=1.18 GHCVER=7.4.2- compiler: ": #GHC 7.4.2"- addons: {apt: {packages: [cabal-install-1.18,ghc-7.4.2], sources: [hvr-ghc]}}- - env: CABALVER=1.18 GHCVER=7.6.3- compiler: ": #GHC 7.6.3"- addons: {apt: {packages: [cabal-install-1.18,ghc-7.6.3], sources: [hvr-ghc]}}- - env: CABALVER=1.18 GHCVER=7.8.4- compiler: ": #GHC 7.8.4"- addons: {apt: {packages: [cabal-install-1.18,ghc-7.8.4], sources: [hvr-ghc]}}- - env: CABALVER=1.22 GHCVER=7.10.3- compiler: ": #GHC 7.10.3"- addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3], sources: [hvr-ghc]}}- - env: CABALVER=1.24 GHCVER=8.0.2- compiler: ": #GHC 8.0.2"- addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2], sources: [hvr-ghc]}}- - env: CABALVER=1.24 GHCVER=8.0.2 CABALOPTS="-f-hashable"- compiler: ": #GHC 8.0.2 -hashable"- addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2], sources: [hvr-ghc]}}- - env: CABALVER=head GHCVER=head- compiler: ": #GHC head"- addons: {apt: {packages: [cabal-install-head,ghc-head], sources: [hvr-ghc]}}-- allow_failures:- - env: CABALVER=1.18 GHCVER=7.0.4- - env: CABALVER=1.18 GHCVER=7.2.2- - env: CABALVER=head GHCVER=head--before_install:- - unset CC- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH--install:- - cabal --version- - echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"- - if [ -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz ];- then- zcat $HOME/.cabal/packages/hackage.haskell.org/00-index.tar.gz >- $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;- fi- - travis_retry cabal update -v- - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config- - cabal install $CABALOPTS --only-dependencies --enable-tests --enable-benchmarks --dry -v > installplan.txt- - sed -i -e '1,/^Resolving /d' installplan.txt; cat installplan.txt--# check whether current requested install-plan matches cached package-db snapshot- - if diff -u installplan.txt $HOME/.cabsnap/installplan.txt;- then- echo "cabal build-cache HIT";- rm -rfv .ghc;- cp -a $HOME/.cabsnap/ghc $HOME/.ghc;- cp -a $HOME/.cabsnap/lib $HOME/.cabsnap/share $HOME/.cabsnap/bin $HOME/.cabal/;- else- echo "cabal build-cache MISS";- rm -rf $HOME/.cabsnap;- mkdir -p $HOME/.ghc $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin;- cabal install $CABALOPTS --only-dependencies --enable-tests --enable-benchmarks;- fi--# snapshot package-db on cache miss- - if [ ! -d $HOME/.cabsnap ];- then- echo "snapshotting package-db to build-cache";- mkdir $HOME/.cabsnap;- cp -a $HOME/.ghc $HOME/.cabsnap/ghc;- cp -a $HOME/.cabal/lib $HOME/.cabal/share $HOME/.cabal/bin installplan.txt $HOME/.cabsnap/;- fi--# Here starts the actual work to be performed for the package under test;-# any command which exits with a non-zero exit code causes the build to fail.-script:- - if [ -f configure.ac ]; then autoreconf -i; fi- - cabal configure $CABALOPTS --enable-tests --enable-benchmarks -v2 # -v2 provides useful information for debugging- - cabal build # this builds all libraries and executables (including tests/benchmarks)- - cabal test- - cabal sdist # tests that a source-distribution can be generated--# Check that the resulting source distribution can be built & installed.-# If there are no other `.tar.gz` files in `dist`, this can be even simpler:-# `cabal install --force-reinstalls dist/*-*.tar.gz`- - SRC_TGZ=$(cabal info . | awk '{print $2;exit}').tar.gz &&- (cd dist && cabal install $CABALOPTS --force-reinstalls "$SRC_TGZ")--notifications:- irc:- channels:- - "irc.freenode.org#haskell-lens"- skip_join: true- template:- - "\x0313pointed\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"--# EOF
.vim.custom view
@@ -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"
CHANGELOG.markdown view
@@ -1,21 +1,27 @@-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.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.
LICENSE view
@@ -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.
README.markdown view
@@ -1,15 +1,15 @@-vector-instances-================--[](https://hackage.haskell.org/package/vector-instances) [](http://travis-ci.org/ekmett/vector-instances)--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 +================ + +[](https://hackage.haskell.org/package/vector-instances) [](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
Setup.lhs view
@@ -1,3 +1,3 @@-#!/usr/bin/env runhaskell-> import Distribution.Simple-> main = defaultMainWithHooks simpleUserHooks+#!/usr/bin/env runhaskell +> import Distribution.Simple +> main = defaultMainWithHooks simpleUserHooks
src/Data/Vector/Instances.hs view
@@ -1,152 +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(..))-#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 #-}-#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
vector-instances.cabal view
@@ -1,53 +1,56 @@-name: vector-instances-version: 3.4-synopsis: 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.6-tested-with:- GHC==7.0.4,- GHC==7.2.2,- GHC==7.4.2,- GHC==7.6.3,- GHC==7.8.4,- GHC==7.10.3,- GHC==8.0.2-extra-source-files:- .travis.yml- .ghci- .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- other-extensions: TypeFamilies- exposed-modules: Data.Vector.Instances- hs-source-dirs: src- build-depends:- base >= 4 && < 5,- vector >= 0.9 && < 0.13,- semigroupoids >= 3,- semigroups >= 0.8.3.1,- comonad >= 3,- pointed >= 3,- keys >= 3-- if flag(hashable)- build-depends: hashable >= 1.1.1.0+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