packages feed

fixed-vector-hetero 0.3.0.0 → 0.3.1.0

raw patch · 4 files changed

+33/−6 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Data.Vector.HFixed: replicateF :: (HVectorF v, Arity (ElemsF v)) => (forall a. f a) -> v f
+ Data.Vector.HFixed.Cont: replicateF :: Arity xs => (forall a. f a) -> ContVecF xs f
- Data.Vector.HFixed: zipMonoF :: (HVectorF v, ArityC c (ElemsF v)) => Proxy c -> (forall a. c a => f a -> f a -> f a) -> v f -> v f -> v f
+ Data.Vector.HFixed: zipMonoF :: (HVectorF v, ArityC c (ElemsF v)) => Proxy c -> (forall a. c a => f a -> g a -> h a) -> v f -> v g -> v h
- Data.Vector.HFixed.Cont: zipMonoF :: ArityC c xs => Proxy c -> (forall a. c a => f a -> f a -> f a) -> ContVecF xs f -> ContVecF xs f -> ContVecF xs f
+ Data.Vector.HFixed.Cont: zipMonoF :: ArityC c xs => Proxy c -> (forall a. c a => f a -> g a -> h a) -> ContVecF xs f -> ContVecF xs g -> ContVecF xs h

Files

ChangeLog view
@@ -1,3 +1,10 @@+Changes in 0.3.1.0++  * replicateF added++  * type signature of zipMonoF generalized++ Changes in 0.3.0.0    * HVector instances up to 32-element tuples
Data/Vector/HFixed.hs view
@@ -55,6 +55,7 @@     -- * Polymorphic values   , replicate   , replicateM+  , replicateF   , zipMono   , zipMonoF   , zipFold@@ -364,6 +365,12 @@ {-# INLINE replicateM #-} replicateM c x = liftM C.vector $ C.replicateM c x +replicateF :: (HVectorF v, Arity (ElemsF v))+           => (forall a. f a) -> v f+{-# INLINE replicateF #-}+replicateF x = C.vectorF $ C.replicateF x++ -- | Unfold vector. unfoldr :: (HVector v, ArityC c (Elems v))         => Proxy c -> (forall a. c a => b -> (a,b)) -> b -> v@@ -379,7 +386,7 @@  -- | Zip two heterogeneous vectors zipMonoF :: (HVectorF v, ArityC c (ElemsF v))-         => Proxy c -> (forall a. c a => f a -> f a -> f a) -> v f -> v f -> v f+         => Proxy c -> (forall a. c a => f a -> g a -> h a) -> v f -> v g -> v h {-# INLINE zipMonoF #-} zipMonoF c f v u   = C.vectorF $ C.zipMonoF c f (C.cvecF v) (C.cvecF u)
Data/Vector/HFixed/Cont.hs view
@@ -59,6 +59,7 @@     -- * Polymorphic values   , replicate   , replicateM+  , replicateF   , zipMono   , zipMonoF   , zipFold@@ -401,6 +402,14 @@     step :: forall a as. WitAllInstances c (a ': as) -> m (a, WitAllInstances c as)     step (WitAllInstancesCons d) = do { x <- act; return (x,d) } +replicateF :: forall f xs. Arity xs => (forall a. f a) -> ContVecF xs f+replicateF f = applyTy+  (\T_replicateF -> (f, T_replicateF))+  (T_replicateF :: T_replicateF xs)++data T_replicateF (xs :: [*]) = T_replicateF++ -- | Right fold over vector foldr :: forall xs c b. (ArityC c xs)       => Proxy c -> (forall a. c a => a -> b -> b) -> b -> ContVec xs -> b@@ -479,15 +488,19 @@ data T_zipMono c xs = T_zipMono (VecList xs) (VecList xs) (WitAllInstances c xs)  -- | Zip two heterogeneous vectors-zipMonoF :: forall xs f c. (ArityC c xs)-        => Proxy c -> (forall a. c a => f a -> f a -> f a) -> ContVecF xs f -> ContVecF xs f -> ContVecF xs f+zipMonoF :: forall xs f g h c. (ArityC c xs)+         => Proxy c+         -> (forall a. c a => f a -> g a -> h a)+         -> ContVecF xs f+         -> ContVecF xs g+         -> ContVecF xs h {-# INLINE zipMonoF #-} zipMonoF _ f cvecA cvecB   = applyTy (\(T_zipMonoF (ConsF a va) (ConsF b vb) (WitAllInstancesCons w)) ->                   (f a b, T_zipMonoF va vb w))-              (T_zipMonoF (vectorF cvecA) (vectorF cvecB) witAllInstances :: T_zipMonoF c f xs)+              (T_zipMonoF (vectorF cvecA) (vectorF cvecB) witAllInstances :: T_zipMonoF c f g xs) -data T_zipMonoF c f xs = T_zipMonoF (VecListF xs f) (VecListF xs f) (WitAllInstances c xs)+data T_zipMonoF c f g xs = T_zipMonoF (VecListF xs f) (VecListF xs g) (WitAllInstances c xs)   -- | Zip vector and fold result using monoid
fixed-vector-hetero.cabal view
@@ -1,5 +1,5 @@ Name:           fixed-vector-hetero-Version:        0.3.0.0+Version:        0.3.1.0 Synopsis:       Generic heterogeneous vectors Description:   Generic heterogeneous vectors