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 +1/−0
- .gitignore +13/−0
- .travis.yml +7/−0
- .vim.custom +31/−0
- CHANGELOG.markdown +4/−0
- Data/Vector/Instances.hs +0/−110
- README.markdown +15/−0
- src/Data/Vector/Instances.hs +110/−0
- vector-instances.cabal +16/−13
+ .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+================++[](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