Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-indexed-traversable for
openSUSE:Factory checked in at 2021-11-11 21:36:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-indexed-traversable (Old)
and /work/SRC/openSUSE:Factory/.ghc-indexed-traversable.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-indexed-traversable"
Thu Nov 11 21:36:34 2021 rev:4 rq:930335 version:0.1.2
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-indexed-traversable/ghc-indexed-traversable.changes
2021-08-25 20:57:47.665193786 +0200
+++
/work/SRC/openSUSE:Factory/.ghc-indexed-traversable.new.1890/ghc-indexed-traversable.changes
2021-11-11 21:36:50.116906736 +0100
@@ -1,0 +2,12 @@
+Mon Nov 1 08:29:08 UTC 2021 - [email protected]
+
+- Update indexed-traversable to version 0.1.2.
+ # 0.1.2 [2021-10-30]
+
+ - Changed `(<$>)` + `(<*>)` to `liftA2` to potentially avoid extra `fmap`.
+ - Add `(#..)`, coercive composition after a 2-parameter function.
+ - Switched references to lens 'Of'- functions to base functions.
+
+ Thanks to wygulmage for contributions.
+
+-------------------------------------------------------------------
Old:
----
indexed-traversable-0.1.1.tar.gz
indexed-traversable.cabal
New:
----
indexed-traversable-0.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-indexed-traversable.spec ++++++
--- /var/tmp/diff_new_pack.qyrdtw/_old 2021-11-11 21:36:50.692907156 +0100
+++ /var/tmp/diff_new_pack.qyrdtw/_new 2021-11-11 21:36:50.692907156 +0100
@@ -18,13 +18,12 @@
%global pkg_name indexed-traversable
Name: ghc-%{pkg_name}
-Version: 0.1.1
+Version: 0.1.2
Release: 0
Summary: FunctorWithIndex, FoldableWithIndex, TraversableWithIndex
License: BSD-2-Clause
URL: https://hackage.haskell.org/package/%{pkg_name}
Source0:
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
-Source1:
https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-array-devel
BuildRequires: ghc-containers-devel
@@ -66,7 +65,6 @@
%prep
%autosetup -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
%build
%ghc_lib_build
++++++ indexed-traversable-0.1.1.tar.gz -> indexed-traversable-0.1.2.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/indexed-traversable-0.1.1/Changelog.md
new/indexed-traversable-0.1.2/Changelog.md
--- old/indexed-traversable-0.1.1/Changelog.md 2001-09-09 03:46:40.000000000
+0200
+++ new/indexed-traversable-0.1.2/Changelog.md 2001-09-09 03:46:40.000000000
+0200
@@ -1,3 +1,11 @@
+# 0.1.2 [2021-10-30]
+
+- Changed `(<$>)` + `(<*>)` to `liftA2` to potentially avoid extra `fmap`.
+- Add `(#..)`, coercive composition after a 2-parameter function.
+- Switched references to lens 'Of'- functions to base functions.
+
+Thanks to wygulmage for contributions.
+
# 0.1.1 [2020-12-27]
- Mark all modules as `Safe`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/indexed-traversable-0.1.1/indexed-traversable.cabal
new/indexed-traversable-0.1.2/indexed-traversable.cabal
--- old/indexed-traversable-0.1.1/indexed-traversable.cabal 2001-09-09
03:46:40.000000000 +0200
+++ new/indexed-traversable-0.1.2/indexed-traversable.cabal 2001-09-09
03:46:40.000000000 +0200
@@ -1,6 +1,6 @@
cabal-version: 1.12
name: indexed-traversable
-version: 0.1.1
+version: 0.1.2
build-type: Simple
license: BSD2
license-file: LICENSE
@@ -45,7 +45,9 @@
|| ==8.4.4
|| ==8.6.5
|| ==8.8.4
- || ==8.10.2
+ || ==8.10.7
+ || ==9.0.1
+ || ==9.2.1
source-repository head
type: git
@@ -67,9 +69,9 @@
build-depends:
array >=0.3.0.2 && <0.6
- , base >=4.3 && <4.16
+ , base >=4.3 && <4.17
, containers >=0.4.0.0 && <0.7
- , transformers >=0.3.0.0 && <0.6
+ , transformers >=0.3.0.0 && <0.7
if !impl(ghc >=7.8)
build-depends: tagged >=0.8.5 && <0.9
@@ -81,7 +83,7 @@
build-depends:
base-orphans >=0.8.3 && <0.9
, semigroups >=0.18.4 && <0.20
- , transformers-compat >=0.6.6 && <0.7
+ , transformers-compat >=0.6.6 && <0.8
if (impl(ghc >=7.0) && impl(ghc <7.6))
build-depends: ghc-prim
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/indexed-traversable-0.1.1/src/Data/Foldable/WithIndex.hs
new/indexed-traversable-0.1.2/src/Data/Foldable/WithIndex.hs
--- old/indexed-traversable-0.1.1/src/Data/Foldable/WithIndex.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/indexed-traversable-0.1.2/src/Data/Foldable/WithIndex.hs
2001-09-09 03:46:40.000000000 +0200
@@ -42,7 +42,7 @@
-- 'any' ??? 'iany' '.' 'const'
-- @
iany :: FoldableWithIndex i f => (i -> a -> Bool) -> f a -> Bool
-iany f = getAny #. ifoldMap (\i -> Any #. f i)
+iany f = getAny #. ifoldMap (Any #.. f)
{-# INLINE iany #-}
-- | Return whether or not all elements in a container satisfy a predicate,
with access to the index @i@.
@@ -53,7 +53,7 @@
-- 'all' ??? 'iall' '.' 'const'
-- @
iall :: FoldableWithIndex i f => (i -> a -> Bool) -> f a -> Bool
-iall f = getAll #. ifoldMap (\i -> All #. f i)
+iall f = getAll #. ifoldMap (All #.. f)
{-# INLINE iall #-}
-- | Return whether or not none of the elements in a container satisfy a
predicate, with access to the index @i@.
@@ -85,7 +85,7 @@
-- 'traverse_' l = 'itraverse' '.' 'const'
-- @
itraverse_ :: (FoldableWithIndex i t, Applicative f) => (i -> a -> f b) -> t a
-> f ()
-itraverse_ f = void . getTraversed #. ifoldMap (\i -> Traversed #. f i)
+itraverse_ f = void . getTraversed #. ifoldMap (Traversed #.. f)
{-# INLINE itraverse_ #-}
-- | Traverse elements with access to the index @i@, discarding the results
(with the arguments flipped).
@@ -112,7 +112,7 @@
-- 'mapM_' ??? 'imapM' '.' 'const'
-- @
imapM_ :: (FoldableWithIndex i t, Monad m) => (i -> a -> m b) -> t a -> m ()
-imapM_ f = liftM skip . getSequenced #. ifoldMap (\i -> Sequenced #. f i)
+imapM_ f = liftM skip . getSequenced #. ifoldMap (Sequenced #.. f)
{-# INLINE imapM_ #-}
-- | Run monadic actions for each target of an 'IndexedFold' or
'Control.Lens.IndexedTraversal.IndexedTraversal' with access to the index,
@@ -122,10 +122,10 @@
-- 'iforM_' ??? 'flip' 'imapM_'
-- @
--
--- When you don't need access to the index then 'Control.Lens.Fold.forMOf_' is
more flexible in what it accepts.
+-- When you don't need access to the index then 'Control.Monad.forM_' is more
flexible in what it accepts.
--
-- @
--- 'Control.Lens.Fold.forMOf_' l a ??? 'iforMOf' l a '.' 'const'
+-- 'Control.Monad.forM_' a ??? 'iforM' a '.' 'const'
-- @
iforM_ :: (FoldableWithIndex i t, Monad m) => t a -> (i -> a -> m b) -> m ()
iforM_ = flip imapM_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/indexed-traversable-0.1.1/src/Data/Traversable/WithIndex.hs
new/indexed-traversable-0.1.2/src/Data/Traversable/WithIndex.hs
--- old/indexed-traversable-0.1.1/src/Data/Traversable/WithIndex.hs
2001-09-09 03:46:40.000000000 +0200
+++ new/indexed-traversable-0.1.2/src/Data/Traversable/WithIndex.hs
2001-09-09 03:46:40.000000000 +0200
@@ -49,7 +49,7 @@
-- 'mapM' ??? 'imapM' '.' 'const'
-- @
imapM :: (TraversableWithIndex i t, Monad m) => (i -> a -> m b) -> t a -> m (t
b)
-imapM f = unwrapMonad #. itraverse (\i -> WrapMonad #. f i)
+imapM f = unwrapMonad #. itraverse (WrapMonad #.. f)
{-# INLINE imapM #-}
-- | Map each element of a structure to a monadic action,
@@ -66,10 +66,10 @@
-- | Generalizes 'Data.Traversable.mapAccumR' to add access to the index.
--
--- 'imapAccumROf' accumulates state from right to left.
+-- 'imapAccumR' accumulates state from right to left.
--
-- @
--- 'Control.Lens.Traversal.mapAccumR' ??? 'imapAccumR' '.' 'const'
+-- 'Data.Traversable.mapAccumR' ??? 'imapAccumR' '.' 'const'
-- @
imapAccumR :: TraversableWithIndex i t => (i -> s -> a -> (s, b)) -> s -> t a
-> (s, t b)
imapAccumR f s0 a = swap (Lazy.runState (forwards (itraverse (\i c ->
Backwards (Lazy.state (\s -> swap (f i s c)))) a)) s0)
@@ -77,10 +77,10 @@
-- | Generalizes 'Data.Traversable.mapAccumL' to add access to the index.
--
--- 'imapAccumLOf' accumulates state from left to right.
+-- 'imapAccumL' accumulates state from left to right.
--
-- @
--- 'Control.Lens.Traversal.mapAccumLOf' ??? 'imapAccumL' '.' 'const'
+-- 'Data.Traversable.mapAccumL' ??? 'imapAccumL' '.' 'const'
-- @
imapAccumL :: TraversableWithIndex i t => (i -> s -> a -> (s, b)) -> s -> t a
-> (s, t b)
imapAccumL f s0 a = swap (Lazy.runState (itraverse (\i c -> Lazy.state (\s ->
swap (f i s c))) a) s0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/indexed-traversable-0.1.1/src/WithIndex.hs
new/indexed-traversable-0.1.2/src/WithIndex.hs
--- old/indexed-traversable-0.1.1/src/WithIndex.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/indexed-traversable-0.1.2/src/WithIndex.hs 2001-09-09
03:46:40.000000000 +0200
@@ -22,7 +22,7 @@
flip, id, seq, snd, ($!), ($), (.), zip)
import Control.Applicative
- (Applicative (..), Const (..), ZipList (..), (<$>))
+ (Applicative (..), Const (..), ZipList (..), (<$>), liftA2)
import Control.Applicative.Backwards (Backwards (..))
import Control.Monad.Trans.Identity (IdentityT (..))
import Control.Monad.Trans.Reader (ReaderT (..))
@@ -94,7 +94,8 @@
#endif
imapDefault :: TraversableWithIndex i f => (i -> a -> b) -> f a -> f b
-imapDefault f = runIdentity #. itraverse (\i a -> Identity (f i a))
+-- imapDefault f = runIdentity #. itraverse (\i a -> Identity (f i a))
+imapDefault f = runIdentity #. itraverse (Identity #.. f)
{-# INLINE imapDefault #-}
-------------------------------------------------------------------------------
@@ -120,6 +121,12 @@
#endif
-- | A variant of 'ifoldMap' that is strict in the accumulator.
+ --
+ -- When you don't need access to the index then 'Data.Foldable.foldMap'' is
more flexible in what it accepts.
+ --
+ -- @
+ -- 'foldMap'' ??? 'ifoldMap'' '.' 'const'
+ -- @
ifoldMap' :: Monoid m => (i -> a -> m) -> f a -> m
ifoldMap' f = ifoldl' (\i acc a -> mappend acc (f i a)) mempty
{-# INLINE ifoldMap' #-}
@@ -132,7 +139,7 @@
-- 'Data.Foldable.foldr' ??? 'ifoldr' '.' 'const'
-- @
ifoldr :: (i -> a -> b -> b) -> b -> f a -> b
- ifoldr f z t = appEndo (ifoldMap (\i -> Endo #. f i) t) z
+ ifoldr f z t = appEndo (ifoldMap (Endo #.. f) t) z
{-# INLINE ifoldr #-}
-- | Left-associative fold of an indexed container with access to the index
@i@.
@@ -143,7 +150,7 @@
-- 'Data.Foldable.foldl' ??? 'ifoldl' '.' 'const'
-- @
ifoldl :: (i -> b -> a -> b) -> b -> f a -> b
- ifoldl f z t = appEndo (getDual (ifoldMap (\i -> Dual #. Endo #. flip (f i))
t)) z
+ ifoldl f z t = appEndo (getDual (ifoldMap (\ i -> Dual #. Endo #. flip (f
i)) t)) z
{-# INLINE ifoldl #-}
-- | /Strictly/ fold right over the elements of a structure with access to
the index @i@.
@@ -163,7 +170,7 @@
-- When you don't need access to the index then 'Control.Lens.Fold.foldlOf''
is more flexible in what it accepts.
--
-- @
- -- 'Control.Lens.Fold.foldlOf'' l ??? 'ifoldlOf'' l '.' 'const'
+ -- 'Data.Foldable.foldl'' l ??? 'ifoldl'' l '.' 'const'
-- @
ifoldl' :: (i -> b -> a -> b) -> b -> f a -> b
ifoldl' f z0 xs = ifoldr f' id xs z0
@@ -171,7 +178,7 @@
{-# INLINE ifoldl' #-}
ifoldMapDefault :: (TraversableWithIndex i f, Monoid m) => (i -> a -> m) -> f
a -> m
-ifoldMapDefault f = getConst #. itraverse (\i a -> Const (f i a))
+ifoldMapDefault f = getConst #. itraverse (Const #.. f)
{-# INLINE ifoldMapDefault #-}
-------------------------------------------------------------------------------
@@ -285,7 +292,7 @@
{-# INLINE ifoldMap #-}
instance TraversableWithIndex Int NonEmpty where
itraverse f ~(a :| as) =
- (:|) <$> f 0 a <*> traverse (uncurry' f) (zip [1..] as)
+ liftA2 (:|) (f 0 a) (traverse (uncurry' f) (zip [1..] as))
{-# INLINE itraverse #-}
-------------------------------------------------------------------------------
@@ -364,7 +371,7 @@
{-# INLINE ifoldMap #-}
instance (TraversableWithIndex i f, TraversableWithIndex j g) =>
TraversableWithIndex (Either i j) (Product f g) where
- itraverse f (Pair a b) = Pair <$> itraverse (f . Left) a <*> itraverse (f .
Right) b
+ itraverse f (Pair a b) = liftA2 Pair (itraverse (f . Left) a) (itraverse (f
. Right) b)
{-# INLINE itraverse #-}
-------------------------------------------------------------------------------
@@ -404,11 +411,11 @@
{-# INLINE imap #-}
instance FoldableWithIndex i f => FoldableWithIndex i (Reverse f) where
- ifoldMap f = getDual . ifoldMap (\i -> Dual #. f i) . getReverse
+ ifoldMap f = getDual #. ifoldMap (Dual #.. f) . getReverse
{-# INLINE ifoldMap #-}
instance TraversableWithIndex i f => TraversableWithIndex i (Reverse f) where
- itraverse f = fmap Reverse . forwards . itraverse (\i -> Backwards . f i) .
getReverse
+ itraverse f = fmap Reverse . forwards . itraverse (Backwards #.. f) .
getReverse
{-# INLINE itraverse #-}
-------------------------------------------------------------------------------
@@ -440,7 +447,7 @@
{-# INLINE ifoldMap #-}
instance TraversableWithIndex [Int] Tree where
- itraverse f (Node a as) = Node <$> f [] a <*> itraverse (\i -> itraverse (f
. (:) i)) as
+ itraverse f (Node a as) = liftA2 Node (f [] a) (itraverse (\i -> itraverse
(f . (:) i)) as)
{-# INLINE itraverse #-}
--
-- | The position in the 'Seq' is available as the index.
@@ -579,7 +586,7 @@
{-# INLINE ifoldMap #-}
instance (TraversableWithIndex i f, TraversableWithIndex j g) =>
TraversableWithIndex (Either i j) (f :*: g) where
- itraverse q (fa :*: ga) = (:*:) <$> itraverse (q . Left) fa <*> itraverse (q
. Right) ga
+ itraverse q (fa :*: ga) = liftA2 (:*:) (itraverse (q . Left) fa) (itraverse
(q . Right) ga)
{-# INLINE itraverse #-}
instance (FunctorWithIndex i f, FunctorWithIndex j g) => FunctorWithIndex
(Either i j) (f :+: g) where
@@ -628,12 +635,19 @@
#if __GLASGOW_HASKELL__ >=708
(#.) :: Coercible b c => (b -> c) -> (a -> b) -> (a -> c)
_ #. x = coerce x
+
+(#..) :: Coercible b c => (b -> c) -> (i -> a -> b) -> (i -> a -> c)
+_ #.. x = coerce x
#else
(#.) :: (b -> c) -> (a -> b) -> (a -> c)
_ #. x = unsafeCoerce x
+
+(#..) :: (b -> c) -> (i -> a -> b) -> (i -> a -> c)
+_ #.. x = unsafeCoerce x
#endif
-infixr 9 #.
+infixr 9 #., #..
{-# INLINE (#.) #-}
+{-# INLINE (#..)#-}
skip :: a -> ()
skip _ = ()
@@ -700,6 +714,12 @@
(j, ff) -> case ma j of
~(k, fa) -> (k, ff <*> fa)
{-# INLINE (<*>) #-}
+#if __GLASGOW_HASKELL__ >=821
+ liftA2 f (Indexing ma) (Indexing mb) = Indexing $ \ i -> case ma i of
+ (j, ja) -> case mb j of
+ ~(k, kb) -> (k, liftA2 f ja kb)
+ {-# INLINE liftA2 #-}
+#endif
-------------------------------------------------------------------------------
-- Strict curry