packages feed

vector-instances 3.2 → 3.2.1

raw patch · 9 files changed

+197/−123 lines, 9 filesdep ~basedep ~comonaddep ~keys

Dependency ranges changed: base, comonad, keys, pointed, semigroupoids, semigroups

Files

+ .ghci view
@@ -0,0 +1,1 @@+:set -isrc -idist/build/autogen -optP-include -optPdist/build/autogen/cabal_macros.h
+ .gitignore view
@@ -0,0 +1,13 @@+dist+docs+wiki+TAGS+tags+wip+.DS_Store+.*.swp+.*.swo+*.o+*.hi+*~+*#
.travis.yml view
@@ -1,1 +1,8 @@ language: haskell+notifications:+  irc:+    channels:+      - "irc.freenode.org#haskell-lens"+    skip_join: true+    template:+      - "\x0313vector-instances\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
+ .vim.custom view
@@ -0,0 +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"
+ CHANGELOG.markdown view
@@ -0,0 +1,4 @@+3.2.1+-----+* Refactored build system.+* Removed bounds on dependencies.
− Data/Vector/Instances.hs
@@ -1,110 +0,0 @@-{-# 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-import Data.Key-import Data.Functor.Bind-import Data.Functor.Extend-import Data.Functor.Plus-import Data.Pointed-import Data.Monoid-import qualified Data.Vector as Vector-import qualified Data.Vector.Generic as G-import qualified Data.Vector.Fusion.Stream as Stream-import Data.Vector.Fusion.Stream.Size-import Data.Vector (Vector,(++),drop,length,imap,ifoldr, ifoldl, izipWith,(!?),(//), generate)-import qualified Data.Vector as Vector--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 = (!)-  {-# 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 Semigroup (Vector a) where-  (<>) = (++)-  {-# 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 #-}--
+ README.markdown view
@@ -0,0 +1,15 @@+vector-instances+================++[![Build Status](https://secure.travis-ci.org/ekmett/vector-instances.png?branch=master)](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
+ src/Data/Vector/Instances.hs view
@@ -0,0 +1,110 @@+{-# 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+import Data.Key+import Data.Functor.Bind+import Data.Functor.Extend+import Data.Functor.Plus+import Data.Pointed+import Data.Monoid+import qualified Data.Vector as Vector+import qualified Data.Vector.Generic as G+import qualified Data.Vector.Fusion.Stream as Stream+import Data.Vector.Fusion.Stream.Size+import Data.Vector (Vector,(++),drop,length,imap,ifoldr, ifoldl, izipWith,(!?),(//), generate)+import qualified Data.Vector as Vector++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 = (!)+  {-# 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 Semigroup (Vector a) where+  (<>) = (++)+  {-# 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 #-}++
vector-instances.cabal view
@@ -1,5 +1,5 @@ name:                vector-instances-version:             3.2+version:             3.2.1 synopsis:            Orphan Instances for 'Data.Vector' homepage:            http://github.com/ekmett/vector-instances bug-reports:         http://github.com/ekmett/vector-instances/issues@@ -10,24 +10,27 @@ category:            Data, Data Structures build-type:          Simple cabal-version:       >=1.6-extra-source-files: .travis.yml+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  library-  other-extensions:-    TypeFamilies--  exposed-modules:-    Data.Vector.Instances-+  other-extensions: TypeFamilies+  exposed-modules: Data.Vector.Instances+  hs-source-dirs: src   build-depends:     base          >= 4       && < 5,     vector        >= 0.9     && < 0.11,-    semigroupoids >= 3.0     && < 3.1,-    semigroups    >= 0.8.3.1 && < 0.9,-    comonad       >= 3.0     && < 3.1,-    pointed       >= 3.0     && < 3.1,-    keys          >= 3.0     && < 3.1+    semigroupoids >= 3,+    semigroups    >= 0.8.3.1,+    comonad       >= 3,+    pointed       >= 3,+    keys          >= 3