Hello community,
here is the log from the commit of package ghc-mono-traversable for
openSUSE:Factory checked in at 2020-01-03 17:35:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-mono-traversable (Old)
and /work/SRC/openSUSE:Factory/.ghc-mono-traversable.new.6675 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-mono-traversable"
Fri Jan 3 17:35:30 2020 rev:21 rq:760289 version:1.0.15.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-mono-traversable/ghc-mono-traversable.changes
2019-12-27 13:55:32.520721318 +0100
+++
/work/SRC/openSUSE:Factory/.ghc-mono-traversable.new.6675/ghc-mono-traversable.changes
2020-01-03 17:35:42.103256159 +0100
@@ -1,0 +2,19 @@
+Sun Dec 29 10:27:23 UTC 2019 - [email protected]
+
+- Update mono-traversable to version 1.0.15.1.
+ # ChangeLog for mono-traversable
+
+ ## 1.0.15.1
+
+ * Remove whitespace after `@` in as-patterns for GHC HEAD
[#186](https://github.com/snoyberg/mono-traversable/pull/186)
+
+ ## 1.0.15.0
+
+ * Added `toNonEmpty` to `Data.NonNull`
+ [#185](https://github.com/snoyberg/mono-traversable/pull/185)
+
+ ## 1.0.14.0
+ * Added `WrappedMono` to `Data.MonoTraversable`
+ [#182](https://github.com/snoyberg/mono-traversable/pull/182)
+
+-------------------------------------------------------------------
Old:
----
mono-traversable-1.0.13.0.tar.gz
New:
----
mono-traversable-1.0.15.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-mono-traversable.spec ++++++
--- /var/tmp/diff_new_pack.o1SYJ4/_old 2020-01-03 17:35:43.631256943 +0100
+++ /var/tmp/diff_new_pack.o1SYJ4/_new 2020-01-03 17:35:43.655256956 +0100
@@ -19,7 +19,7 @@
%global pkg_name mono-traversable
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 1.0.13.0
+Version: 1.0.15.1
Release: 0
Summary: Type classes for mapping, folding, and traversing monomorphic
containers
License: MIT
++++++ mono-traversable-1.0.13.0.tar.gz -> mono-traversable-1.0.15.1.tar.gz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mono-traversable-1.0.13.0/ChangeLog.md
new/mono-traversable-1.0.15.1/ChangeLog.md
--- old/mono-traversable-1.0.13.0/ChangeLog.md 2019-10-03 14:47:12.000000000
+0200
+++ new/mono-traversable-1.0.15.1/ChangeLog.md 2019-12-25 06:14:05.000000000
+0100
@@ -1,3 +1,18 @@
+# ChangeLog for mono-traversable
+
+## 1.0.15.1
+
+* Remove whitespace after `@` in as-patterns for GHC HEAD
[#186](https://github.com/snoyberg/mono-traversable/pull/186)
+
+## 1.0.15.0
+
+* Added `toNonEmpty` to `Data.NonNull`
+ [#185](https://github.com/snoyberg/mono-traversable/pull/185)
+
+## 1.0.14.0
+* Added `WrappedMono` to `Data.MonoTraversable`
+ [#182](https://github.com/snoyberg/mono-traversable/pull/182)
+
## 1.0.13.0
* Added `WrappedPoly` to `Data.MonoTraversable`
[#180](https://github.com/snoyberg/mono-traversable/pull/180)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mono-traversable-1.0.13.0/README.md
new/mono-traversable-1.0.15.1/README.md
--- old/mono-traversable-1.0.13.0/README.md 2019-08-14 05:21:19.000000000
+0200
+++ new/mono-traversable-1.0.15.1/README.md 2019-12-25 06:12:47.000000000
+0100
@@ -155,7 +155,7 @@
* IsMap: unifies operations across different `Map`s
* MonoZip: zip operations on MonoFunctors.
-Note that because `Set` and `Map` are not a Functor (and therefore not
MonoFoldable), one must use `mapFromList`, `mapToList`, `setFromList`, and
`setToList`.
+Note that because `Set` is not a Functor (and therefore neither a MonoFunctor
nor MonoTraversable), one must use `setFromList` and `setToList` to `omap` or
`otraverse` over the elements of a `Set`.
### Sequences
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mono-traversable-1.0.13.0/mono-traversable.cabal
new/mono-traversable-1.0.15.1/mono-traversable.cabal
--- old/mono-traversable-1.0.13.0/mono-traversable.cabal 2019-10-03
14:47:17.000000000 +0200
+++ new/mono-traversable-1.0.15.1/mono-traversable.cabal 2019-12-25
06:14:22.000000000 +0100
@@ -4,10 +4,10 @@
--
-- see: https://github.com/sol/hpack
--
--- hash: f15c018a84778989ad8a6b3271167acba04984c689d9620523b6855ce2ec78f1
+-- hash: b2ac08c2845dd12213a3bc3c6e01f805bb98a7693a588b0ae313ceadcb5ca592
name: mono-traversable
-version: 1.0.13.0
+version: 1.0.15.1
synopsis: Type classes for mapping, folding, and traversing monomorphic
containers
description: Please see the README at
<https://www.stackage.org/package/mono-traversable>
category: Data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/mono-traversable-1.0.13.0/src/Data/MonoTraversable.hs
new/mono-traversable-1.0.15.1/src/Data/MonoTraversable.hs
--- old/mono-traversable-1.0.13.0/src/Data/MonoTraversable.hs 2019-10-03
14:47:12.000000000 +0200
+++ new/mono-traversable-1.0.15.1/src/Data/MonoTraversable.hs 2019-12-25
06:12:47.000000000 +0100
@@ -4,6 +4,7 @@
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GADTs #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
@@ -1313,7 +1314,7 @@
instance MonoComonad (ViewL a) where
oextract ~(x :< _) = x
{-# INLINE oextract #-}
- oextend f w@ ~(_ :< xxs) =
+ oextend f w@(~(_ :< xxs)) =
f w :< case Seq.viewl xxs of
EmptyL -> Seq.empty
xs -> case oextend f xs of
@@ -1323,7 +1324,7 @@
instance MonoComonad (ViewR a) where
oextract ~(_ :> x) = x
{-# INLINE oextract #-}
- oextend f w@ ~(xxs :> _) =
+ oextend f w@(~(xxs :> _)) =
(case Seq.viewr xxs of
EmptyR -> Seq.empty
xs -> case oextend f xs of
@@ -1408,3 +1409,103 @@
instance F.Foldable f => MonoFoldable (WrappedPoly f a)
instance Functor f => MonoFunctor (WrappedPoly f a)
instance Applicative f => MonoPointed (WrappedPoly f a)
+
+
+-- | Provides a `F.Foldable` for an arbitrary `MonoFoldable`.
+--
+-- @since 1.0.14.0
+data WrappedMono mono a where
+ WrappedMono :: Element mono ~ a => mono -> WrappedMono mono a
+
+-- | Unwraps a `WrappedMono`.
+--
+-- @since 1.0.14.0
+unwrapMono :: WrappedMono mono a -> mono
+unwrapMono (WrappedMono mono) = mono
+{-# INLINE unwrapMono #-}
+
+type instance Element (WrappedMono mono a) = Element mono
+
+instance MonoFoldable mono => MonoFoldable (WrappedMono mono a) where
+ ofoldMap f = ofoldMap f . unwrapMono
+ {-# INLINE ofoldMap #-}
+ ofoldr f z = ofoldr f z . unwrapMono
+ {-# INLINE ofoldr #-}
+ ofoldl' f z = ofoldl' f z . unwrapMono
+ {-# INLINE ofoldl' #-}
+ otoList = otoList . unwrapMono
+ {-# INLINE otoList #-}
+ oall f = oall f . unwrapMono
+ {-# INLINE oall #-}
+ oany f = oany f . unwrapMono
+ {-# INLINE oany #-}
+ onull = onull . unwrapMono
+ {-# INLINE onull #-}
+ olength = olength . unwrapMono
+ {-# INLINE olength #-}
+ olength64 = olength64 . unwrapMono
+ {-# INLINE olength64 #-}
+ ocompareLength mono i = ocompareLength (unwrapMono mono) i
+ {-# INLINE ocompareLength #-}
+ otraverse_ f = otraverse_ f . unwrapMono
+ {-# INLINE otraverse_ #-}
+ ofor_ mono f = ofor_ (unwrapMono mono) f
+ {-# INLINE ofor_ #-}
+ omapM_ f = omapM_ f . unwrapMono
+ {-# INLINE omapM_ #-}
+ oforM_ mono f = oforM_ (unwrapMono mono) f
+ {-# INLINE oforM_ #-}
+ ofoldlM f z = ofoldlM f z . unwrapMono
+ {-# INLINE ofoldlM #-}
+ ofoldMap1Ex f = ofoldMap1Ex f . unwrapMono
+ {-# INLINE ofoldMap1Ex #-}
+ ofoldr1Ex f = ofoldr1Ex f . unwrapMono
+ {-# INLINE ofoldr1Ex #-}
+ ofoldl1Ex' f = ofoldl1Ex' f . unwrapMono
+ {-# INLINE ofoldl1Ex' #-}
+ headEx = headEx . unwrapMono
+ {-# INLINE headEx #-}
+ lastEx = lastEx . unwrapMono
+ {-# INLINE lastEx #-}
+ unsafeHead = unsafeHead . unwrapMono
+ {-# INLINE unsafeHead #-}
+ unsafeLast = unsafeLast . unwrapMono
+ {-# INLINE unsafeLast #-}
+ maximumByEx f = maximumByEx f . unwrapMono
+ {-# INLINE maximumByEx #-}
+ minimumByEx f = minimumByEx f . unwrapMono
+ {-# INLINE minimumByEx #-}
+ oelem a = oelem a . unwrapMono
+ {-# INLINE oelem #-}
+ onotElem a = onotElem a . unwrapMono
+ {-# INLINE onotElem #-}
+
+instance MonoFunctor mono => MonoFunctor (WrappedMono mono a) where
+ omap f (WrappedMono mono) = WrappedMono (omap f mono)
+ {-# INLINE omap #-}
+
+instance (MonoPointed mono, Element mono ~ a) => MonoPointed (WrappedMono mono
a) where
+ opoint a = WrappedMono (opoint a)
+ {-# INLINE opoint #-}
+
+instance MonoFoldable mono => F.Foldable (WrappedMono mono) where
+ foldr f zero (WrappedMono mono) = ofoldr f zero mono
+ {-# INLINE foldr #-}
+ foldMap f (WrappedMono mono) = ofoldMap f mono
+ {-# INLINE foldMap #-}
+ foldl' f z (WrappedMono mono) = ofoldl' f z mono
+ {-# INLINE foldl' #-}
+ foldl1 f (WrappedMono mono) = ofoldl1Ex' f mono
+ {-# INLINE foldl1 #-}
+ toList (WrappedMono mono) = otoList mono
+ {-# INLINE toList #-}
+ null (WrappedMono mono) = onull mono
+ {-# INLINE null #-}
+ length (WrappedMono mono) = olength mono
+ {-# INLINE length #-}
+ elem a (WrappedMono mono) = oelem a mono
+ {-# INLINE elem #-}
+ maximum (WrappedMono mono) = maximumEx mono
+ {-# INLINE maximum #-}
+ minimum (WrappedMono mono) = minimumEx mono
+ {-# INLINE minimum #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mono-traversable-1.0.13.0/src/Data/NonNull.hs
new/mono-traversable-1.0.15.1/src/Data/NonNull.hs
--- old/mono-traversable-1.0.13.0/src/Data/NonNull.hs 2019-08-14
05:21:19.000000000 +0200
+++ new/mono-traversable-1.0.15.1/src/Data/NonNull.hs 2019-12-25
06:12:47.000000000 +0100
@@ -16,6 +16,7 @@
, nonNull
, toNullable
, fromNonEmpty
+ , toNonEmpty
, ncons
, nuncons
, splitFirst
@@ -132,6 +133,12 @@
fromNonEmpty = impureNonNull . fromList . NE.toList
{-# INLINE fromNonEmpty #-}
+-- | __Safely__ convert from a 'NonNull' container to a 'NonEmpty' list.
+--
+-- @since 1.0.15.0
+toNonEmpty :: MonoFoldable mono => NonNull mono -> NE.NonEmpty (Element mono)
+toNonEmpty = NE.fromList . otoList
+
-- | Specializes 'fromNonEmpty' to lists only.
toMinList :: NE.NonEmpty a -> NonNull [a]
toMinList = fromNonEmpty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/mono-traversable-1.0.13.0/test/Spec.hs
new/mono-traversable-1.0.15.1/test/Spec.hs
--- old/mono-traversable-1.0.13.0/test/Spec.hs 2019-08-14 05:21:19.000000000
+0200
+++ new/mono-traversable-1.0.15.1/test/Spec.hs 2019-12-25 06:12:47.000000000
+0100
@@ -209,6 +209,9 @@
describe "fromNonEmpty" $ do
prop "toMinList" $ \(NonEmpty' ne) ->
(NE.toList ne :: [Int]) @?= NN.toNullable (NN.toMinList ne)
+ describe "toNonEmpty" $ do
+ it "converts nonnull to nonempty" $ do
+ NN.toNonEmpty (NN.impureNonNull [1,2,3]) @?= NE.fromList
[1,2,3]
describe "mapNonNull" $ do
prop "mapNonNull id == id" $ \x xs ->