packages feed

vector-sized 1.2.0.1 → 1.4.0.0

raw patch · 10 files changed

+77/−58 lines, 10 filesdep +binarydep ~basedep ~hashable

Dependencies added: binary

Dependency ranges changed: base, hashable

Files

changelog.md view
@@ -1,5 +1,16 @@ # Change Log +## [1.4.0.0] - 2019-09-12++- Remove Generic instance, see+  https://github.com/expipiplus1/vector-sized/issues/79+- Add Binary instance+- Loosen bounds on dependencies++## [1.3.0.0] - 2019-05-28++- Correct type of accumulating fold functions+ ## [1.2.0.1] - 2019-05-22  - Loosen upper bounds on dependencies
default.nix view
@@ -1,5 +1,6 @@ { pkgs ? import <nixpkgs> {} , compiler ? "ghc864"+, hoogle ? true }:  let src = pkgs.nix-gitignore.gitignoreSource [] ./.;@@ -8,6 +9,9 @@     haskellPackages = with pkgs.haskell.lib;       pkgs.haskell.packages.${compiler}.override {       overrides = self: super: {+      } // pkgs.lib.optionalAttrs hoogle {+        ghc = super.ghc // { withPackages = super.ghc.withHoogle; };+        ghcWithPackages = self.ghc.withPackages;       };     }; @@ -22,6 +26,10 @@     # cabal2nix     envWithExtras = pkgs.lib.overrideDerivation drv.env (attrs: {       buildInputs = attrs.buildInputs ++ extraEnvPackages;+    } // pkgs.lib.optionalAttrs hoogle {+      shellHook   = attrs.shellHook + ''+        export HIE_HOOGLE_DATABASE="$(cat $(which hoogle) | sed -n -e 's|.*--database \(.*\.hoo\).*|\1|p')"+      '';     });  in
shell.nix view
@@ -1,5 +1,6 @@ { pkgs ? import <nixpkgs> {} , compiler ? "ghc864"+, hoogle ? true }: -(import ./default.nix { inherit pkgs compiler; }).env+(import ./default.nix { inherit pkgs compiler hoogle; }).env
src/Data/Vector/Generic/Mutable/Sized/Internal.hs view
@@ -1,6 +1,5 @@ {-# LANGUAGE DataKinds                  #-} {-# LANGUAGE DeriveDataTypeable         #-}-{-# LANGUAGE DeriveGeneric              #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures             #-} {-# OPTIONS_HADDOCK not-home            #-}@@ -10,7 +9,6 @@   ) where -import           GHC.Generics                   ( Generic ) import           GHC.TypeLits import           Control.DeepSeq                ( NFData ) import           Data.Data@@ -21,4 +19,4 @@ -- Be careful when using the constructor here to not construct sized vectors -- which have a different length than that specified in the type parameter! newtype MVector v (n :: Nat) s a = MVector (v s a)-  deriving ( Generic, Typeable, Data, Storable, NFData )+  deriving ( Typeable, Data, Storable, NFData )
src/Data/Vector/Generic/Sized.hs view
@@ -1,11 +1,7 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE DeriveTraversable #-} {-# LANGUAGE ExistentialQuantification #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE KindSignatures #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE RankNTypes #-}@@ -254,11 +250,13 @@ import qualified Data.Vector.Unboxed as Unboxed import qualified Data.Vector.Generic.Mutable.Sized as SVGM import Data.Vector.Generic.Mutable.Sized.Internal+import Data.Binary import GHC.TypeLits import Data.Bifunctor import Data.Finite import Data.Finite.Internal import Data.Proxy+import Control.Monad (mzero) import Control.Monad.Primitive import Foreign.Storable import Data.Data@@ -1620,23 +1618,23 @@ {-# inline postscanl' #-}  -- | /O(n)/ Haskell-style scan.-scanl :: (VG.Vector v a, VG.Vector v b) => (a -> b -> a) -> a -> Vector v n b -> Vector v n a-scanl f z = withVectorUnsafe (VG.scanl f z )+scanl :: (VG.Vector v a, VG.Vector v b) => (a -> b -> a) -> a -> Vector v n b -> Vector v (1+n) a+scanl f z (Vector v) = Vector (VG.scanl f z v) {-# inline scanl #-}  -- | /O(n)/ Haskell-style scan with strict accumulator.-scanl' :: (VG.Vector v a, VG.Vector v b) => (a -> b -> a) -> a -> Vector v n b -> Vector v n a-scanl' f z = withVectorUnsafe (VG.scanl' f z )+scanl' :: (VG.Vector v a, VG.Vector v b) => (a -> b -> a) -> a -> Vector v n b -> Vector v (1+n) a+scanl' f z (Vector v) = Vector (VG.scanl' f z v) {-# inline scanl' #-}  -- | /O(n)/ Scan over a non-empty vector.-scanl1 :: VG.Vector v a => (a -> a -> a) -> Vector v (n+1) a -> Vector v (n+1) a-scanl1 f = withVectorUnsafe (VG.scanl1 f )+scanl1 :: VG.Vector v a => (a -> a -> a) -> Vector v (1+n) a -> Vector v (2+n) a+scanl1 f (Vector v) = Vector (VG.scanl1 f v) {-# inline scanl1 #-}  -- | /O(n)/ Scan over a non-empty vector with a strict accumulator.-scanl1' :: VG.Vector v a => (a -> a -> a) -> Vector v (n+1) a -> Vector v (n+1) a-scanl1' f = withVectorUnsafe (VG.scanl1' f )+scanl1' :: VG.Vector v a => (a -> a -> a) -> Vector v (1+n) a -> Vector v (2+n) a+scanl1' f (Vector v) = Vector (VG.scanl1' f v) {-# inline scanl1' #-}  -- | /O(n)/ Right-to-left prescan.@@ -1660,24 +1658,24 @@ {-# inline postscanr' #-}  -- | /O(n)/ Right-to-left Haskell-style scan.-scanr :: (VG.Vector v a, VG.Vector v b) => (a -> b -> b) -> b -> Vector v n a -> Vector v n b-scanr f z = withVectorUnsafe (VG.scanr f z )+scanr :: (VG.Vector v a, VG.Vector v b) => (a -> b -> b) -> b -> Vector v n a -> Vector v (n+1) b+scanr f z (Vector v) = Vector (VG.scanr f z v) {-# inline scanr #-}  -- | /O(n)/ Right-to-left Haskell-style scan with strict accumulator.-scanr' :: (VG.Vector v a, VG.Vector v b) => (a -> b -> b) -> b -> Vector v n a -> Vector v n b-scanr' f z = withVectorUnsafe (VG.scanr' f z )+scanr' :: (VG.Vector v a, VG.Vector v b) => (a -> b -> b) -> b -> Vector v n a -> Vector v (n+1) b+scanr' f z (Vector v) = Vector (VG.scanr' f z v) {-# inline scanr' #-}  -- | /O(n)/ Right-to-left scan over a non-empty vector.-scanr1 :: VG.Vector v a => (a -> a -> a) -> Vector v (n+1) a -> Vector v (n+1) a-scanr1 f = withVectorUnsafe (VG.scanr1 f )+scanr1 :: VG.Vector v a => (a -> a -> a) -> Vector v (n+1) a -> Vector v (n+2) a+scanr1 f (Vector v) = Vector (VG.scanr1 f v) {-# inline scanr1 #-}  -- | /O(n)/ Right-to-left scan over a non-empty vector with a strict -- accumulator.-scanr1' :: VG.Vector v a => (a -> a -> a) -> Vector v (n+1) a -> Vector v (n+1) a-scanr1' f = withVectorUnsafe (VG.scanr1' f )+scanr1' :: VG.Vector v a => (a -> a -> a) -> Vector v (n+1) a -> Vector v (n+2) a+scanr1' f (Vector v) = Vector (VG.scanr1' f v) {-# inline scanr1' #-}  @@ -1928,3 +1926,7 @@     asinh   = map asinh     acosh   = map acosh     atanh   = map atanh++instance (VG.Vector v a, Binary a, KnownNat n) => Binary (Vector v n a) where+  get = replicateM Data.Binary.get +  put = mapM_ put
src/Data/Vector/Generic/Sized/Internal.hs view
@@ -1,6 +1,5 @@ {-# LANGUAGE DataKinds                  #-} {-# LANGUAGE DeriveDataTypeable         #-}-{-# LANGUAGE DeriveGeneric              #-} {-# LANGUAGE DeriveTraversable          #-} {-# LANGUAGE FlexibleInstances          #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}@@ -41,7 +40,6 @@                                                   , unsafeRangeSize                                                   )                                                 )-import           GHC.Generics                   ( Generic ) import           GHC.TypeLits                   ( Nat )  -- | A wrapper to tag vectors with a type level length.@@ -49,7 +47,7 @@ -- Be careful when using the constructor here to not construct sized vectors -- which have a different length than that specified in the type parameter! newtype Vector v (n :: Nat) a = Vector (v a)-  deriving ( Show, Eq, Ord, Functor, Foldable, Traversable, NFData, Generic+  deriving ( Show, Eq, Ord, Functor, Foldable, Traversable, NFData            , Show1, Eq1, Ord1            , Data, Typeable            )
src/Data/Vector/Sized.hs view
@@ -1364,22 +1364,22 @@ {-# inline postscanl' #-}  -- | /O(n)/ Haskell-style scan.-scanl ::  (a -> b -> a) -> a -> Vector n b -> Vector n a+scanl ::  (a -> b -> a) -> a -> Vector n b -> Vector (1+n) a scanl = V.scanl {-# inline scanl #-}  -- | /O(n)/ Haskell-style scan with strict accumulator.-scanl' ::  (a -> b -> a) -> a -> Vector n b -> Vector n a+scanl' ::  (a -> b -> a) -> a -> Vector n b -> Vector (1+n) a scanl' = V.scanl' {-# inline scanl' #-}  -- | /O(n)/ Scan over a non-empty vector.-scanl1 :: (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanl1 :: (a -> a -> a) -> Vector (1+n) a -> Vector (2+n) a scanl1 = V.scanl1 {-# inline scanl1 #-}  -- | /O(n)/ Scan over a non-empty vector with a strict accumulator.-scanl1' :: (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanl1' :: (a -> a -> a) -> Vector (1+n) a -> Vector (2+n) a scanl1' = V.scanl1' {-# inline scanl1' #-} @@ -1404,23 +1404,23 @@ {-# inline postscanr' #-}  -- | /O(n)/ Right-to-left Haskell-style scan.-scanr ::  (a -> b -> b) -> b -> Vector n a -> Vector n b+scanr ::  (a -> b -> b) -> b -> Vector n a -> Vector (n+1) b scanr = V.scanr {-# inline scanr #-}  -- | /O(n)/ Right-to-left Haskell-style scan with strict accumulator.-scanr' ::  (a -> b -> b) -> b -> Vector n a -> Vector n b+scanr' ::  (a -> b -> b) -> b -> Vector n a -> Vector (n+1) b scanr' = V.scanr' {-# inline scanr' #-}  -- | /O(n)/ Right-to-left scan over a non-empty vector.-scanr1 :: (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanr1 :: (a -> a -> a) -> Vector (n+1) a -> Vector (n+2) a scanr1 = V.scanr1 {-# inline scanr1 #-}  -- | /O(n)/ Right-to-left scan over a non-empty vector with a strict -- accumulator.-scanr1' :: (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanr1' :: (a -> a -> a) -> Vector (n+1) a -> Vector (n+2) a scanr1' = V.scanr1' {-# inline scanr1' #-} 
src/Data/Vector/Storable/Sized.hs view
@@ -1435,22 +1435,22 @@ {-# inline postscanl' #-}  -- | /O(n)/ Haskell-style scan.-scanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector n b -> Vector n a+scanl :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector n b -> Vector (1+n) a scanl = V.scanl {-# inline scanl #-}  -- | /O(n)/ Haskell-style scan with strict accumulator.-scanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector n b -> Vector n a+scanl' :: (Storable a, Storable b) => (a -> b -> a) -> a -> Vector n b -> Vector (1+n) a scanl' = V.scanl' {-# inline scanl' #-}  -- | /O(n)/ Scan over a non-empty vector.-scanl1 :: Storable a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanl1 :: Storable a => (a -> a -> a) -> Vector (1+n) a -> Vector (2+n) a scanl1 = V.scanl1 {-# inline scanl1 #-}  -- | /O(n)/ Scan over a non-empty vector with a strict accumulator.-scanl1' :: Storable a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanl1' :: Storable a => (a -> a -> a) -> Vector (1+n) a -> Vector (2+n) a scanl1' = V.scanl1' {-# inline scanl1' #-} @@ -1475,23 +1475,23 @@ {-# inline postscanr' #-}  -- | /O(n)/ Right-to-left Haskell-style scan.-scanr :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector n a -> Vector n b+scanr :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector n a -> Vector (n+1) b scanr = V.scanr {-# inline scanr #-}  -- | /O(n)/ Right-to-left Haskell-style scan with strict accumulator.-scanr' :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector n a -> Vector n b+scanr' :: (Storable a, Storable b) => (a -> b -> b) -> b -> Vector n a -> Vector (n+1) b scanr' = V.scanr' {-# inline scanr' #-}  -- | /O(n)/ Right-to-left scan over a non-empty vector.-scanr1 :: Storable a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanr1 :: Storable a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+2) a scanr1 = V.scanr1 {-# inline scanr1 #-}  -- | /O(n)/ Right-to-left scan over a non-empty vector with a strict -- accumulator.-scanr1' :: Storable a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanr1' :: Storable a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+2) a scanr1' = V.scanr1' {-# inline scanr1' #-} 
src/Data/Vector/Unboxed/Sized.hs view
@@ -1433,22 +1433,22 @@ {-# inline postscanl' #-}  -- | /O(n)/ Haskell-style scan.-scanl :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector n b -> Vector n a+scanl :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector n b -> Vector (1+n) a scanl = V.scanl {-# inline scanl #-}  -- | /O(n)/ Haskell-style scan with strict accumulator.-scanl' :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector n b -> Vector n a+scanl' :: (Unbox a, Unbox b) => (a -> b -> a) -> a -> Vector n b -> Vector (1+n) a scanl' = V.scanl' {-# inline scanl' #-}  -- | /O(n)/ Scan over a non-empty vector.-scanl1 :: Unbox a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanl1 :: Unbox a => (a -> a -> a) -> Vector (1+n) a -> Vector (2+n) a scanl1 = V.scanl1 {-# inline scanl1 #-}  -- | /O(n)/ Scan over a non-empty vector with a strict accumulator.-scanl1' :: Unbox a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanl1' :: Unbox a => (a -> a -> a) -> Vector (1+n) a -> Vector (2+n) a scanl1' = V.scanl1' {-# inline scanl1' #-} @@ -1473,23 +1473,23 @@ {-# inline postscanr' #-}  -- | /O(n)/ Right-to-left Haskell-style scan.-scanr :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector n a -> Vector n b+scanr :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector n a -> Vector (n+1) b scanr = V.scanr {-# inline scanr #-}  -- | /O(n)/ Right-to-left Haskell-style scan with strict accumulator.-scanr' :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector n a -> Vector n b+scanr' :: (Unbox a, Unbox b) => (a -> b -> b) -> b -> Vector n a -> Vector (n+1) b scanr' = V.scanr' {-# inline scanr' #-}  -- | /O(n)/ Right-to-left scan over a non-empty vector.-scanr1 :: Unbox a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanr1 :: Unbox a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+2) a scanr1 = V.scanr1 {-# inline scanr1 #-}  -- | /O(n)/ Right-to-left scan over a non-empty vector with a strict -- accumulator.-scanr1' :: Unbox a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+1) a+scanr1' :: Unbox a => (a -> a -> a) -> Vector (n+1) a -> Vector (n+2) a scanr1' = V.scanr1' {-# inline scanr1' #-} 
vector-sized.cabal view
@@ -1,11 +1,13 @@--- This file has been generated from package.yaml by hpack version 0.27.0.+cabal-version: 1.12++-- This file has been generated from package.yaml by hpack version 0.31.2. -- -- see: https://github.com/sol/hpack ----- hash: 9e10d73204f28676f1b2ea3f9f268f3bc030536ef316caacf208ba554a7d0e14+-- hash: a6e3b4ce977d92b06ce23ff21c540ce53032a023b9b0f55abcbefbe0e68786ac  name:           vector-sized-version:        1.2.0.1+version:        1.4.0.0 synopsis:       Size tagged vectors description:    Please see README.md category:       Data@@ -17,12 +19,10 @@ license:        BSD3 license-file:   LICENSE build-type:     Simple-cabal-version:  >= 1.10- extra-source-files:+    readme.md     changelog.md     default.nix-    readme.md     shell.nix  source-repository head@@ -48,11 +48,12 @@   build-depends:       adjunctions >=4.3 && <4.5     , base >=4.9 && <5+    , binary >=0.8.3.0     , comonad >=4 && <6     , deepseq >=1.1 && <1.5     , distributive >=0.5 && <0.7     , finite-typelits >=0.1-    , hashable >=1.2.4.0 && <1.3+    , hashable >=1.2.4.0     , indexed-list-literals >=0.2.0.0     , primitive >=0.5 && <0.8     , vector >=0.11 && <0.13