packages feed

vector-instances 3.4.1 → 3.4.2

raw patch · 8 files changed

+354/−351 lines, 8 filesdep −semigroupssetup-changed

Dependencies removed: semigroups

Files

.gitignore view
@@ -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.*
.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,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.
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
-================
-
-[![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
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,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
vector-instances.cabal view
@@ -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