Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package ghc-recursion-schemes for
openSUSE:Factory checked in at 2021-03-28 11:56:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-recursion-schemes (Old)
and /work/SRC/openSUSE:Factory/.ghc-recursion-schemes.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-recursion-schemes"
Sun Mar 28 11:56:05 2021 rev:4 rq:881545 version:5.2.2.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/ghc-recursion-schemes/ghc-recursion-schemes.changes
2021-03-10 08:58:10.958946415 +0100
+++
/work/SRC/openSUSE:Factory/.ghc-recursion-schemes.new.2401/ghc-recursion-schemes.changes
2021-03-28 11:57:52.448304272 +0200
@@ -1,0 +2,8 @@
+Mon Mar 22 08:41:40 UTC 2021 - [email protected]
+
+- Update recursion-schemes to version 5.2.2.1.
+ ## 5.2.2.1
+
+ * Fix build issue regarding `Setup.hs`. See #120.
+
+-------------------------------------------------------------------
Old:
----
recursion-schemes-5.2.2.tar.gz
New:
----
recursion-schemes-5.2.2.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-recursion-schemes.spec ++++++
--- /var/tmp/diff_new_pack.5lINnG/_old 2021-03-28 11:57:53.096304845 +0200
+++ /var/tmp/diff_new_pack.5lINnG/_new 2021-03-28 11:57:53.096304845 +0200
@@ -19,7 +19,7 @@
%global pkg_name recursion-schemes
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 5.2.2
+Version: 5.2.2.1
Release: 0
Summary: Representing common recursion patterns as higher-order
functions
License: BSD-2-Clause
@@ -84,6 +84,6 @@
%license LICENSE
%files devel -f %{name}-devel.files
-%doc CHANGELOG.markdown README.markdown
+%doc CHANGELOG.markdown README.markdown docs
%changelog
++++++ recursion-schemes-5.2.2.tar.gz -> recursion-schemes-5.2.2.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/recursion-schemes-5.2.2/.gitignore
new/recursion-schemes-5.2.2.1/.gitignore
--- old/recursion-schemes-5.2.2/.gitignore 2001-09-09 03:46:40.000000000
+0200
+++ new/recursion-schemes-5.2.2.1/.gitignore 2001-09-09 03:46:40.000000000
+0200
@@ -2,7 +2,7 @@
dist-newstyle/
.stack-work/
.hsenv/
-docs
+doc/
wiki
TAGS
tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/recursion-schemes-5.2.2/CHANGELOG.markdown
new/recursion-schemes-5.2.2.1/CHANGELOG.markdown
--- old/recursion-schemes-5.2.2/CHANGELOG.markdown 2001-09-09
03:46:40.000000000 +0200
+++ new/recursion-schemes-5.2.2.1/CHANGELOG.markdown 2001-09-09
03:46:40.000000000 +0200
@@ -1,3 +1,8 @@
+
+## 5.2.2.1
+
+* Fix build issue regarding `Setup.hs`. See #120.
+
## 5.2.2
* More Mendler-style recursion-schemes: `mpara`, `mzygo`, `mana`, `mapo`, and
`mfutu`.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/recursion-schemes-5.2.2/Setup.hs
new/recursion-schemes-5.2.2.1/Setup.hs
--- old/recursion-schemes-5.2.2/Setup.hs 2001-09-09 03:46:40.000000000
+0200
+++ new/recursion-schemes-5.2.2.1/Setup.hs 1970-01-01 01:00:00.000000000
+0100
@@ -1,7 +0,0 @@
-module Main where
-
-import Distribution.Extra.Doctest (defaultMainWithDoctests)
-
-main :: IO ()
-main = defaultMainWithDoctests "doctests"
-
Binary files old/recursion-schemes-5.2.2/docs/github-compression.png and
new/recursion-schemes-5.2.2.1/docs/github-compression.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/recursion-schemes-5.2.2/recursion-schemes.cabal
new/recursion-schemes-5.2.2.1/recursion-schemes.cabal
--- old/recursion-schemes-5.2.2/recursion-schemes.cabal 2001-09-09
03:46:40.000000000 +0200
+++ new/recursion-schemes-5.2.2.1/recursion-schemes.cabal 2001-09-09
03:46:40.000000000 +0200
@@ -1,8 +1,8 @@
name: recursion-schemes
category: Control, Recursion
-version: 5.2.2
+version: 5.2.2.1
license: BSD2
-cabal-version: >= 1.10
+cabal-version: 1.18
license-file: LICENSE
author: Edward A. Kmett
maintainer: "Samuel G??lineau" <[email protected]>,
@@ -18,6 +18,7 @@
tested-with: GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.2,
GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, GHC==8.8.3, GHC==8.10.1
build-type: Simple
+extra-doc-files: docs/github-compression.png
extra-source-files: CHANGELOG.markdown .gitignore README.markdown
include/recursion-schemes-common.h
source-repository head
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/recursion-schemes-5.2.2/src/Data/Functor/Foldable.hs
new/recursion-schemes-5.2.2.1/src/Data/Functor/Foldable.hs
--- old/recursion-schemes-5.2.2/src/Data/Functor/Foldable.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/recursion-schemes-5.2.2.1/src/Data/Functor/Foldable.hs 2001-09-09
03:46:40.000000000 +0200
@@ -136,6 +136,8 @@
-- $setup
-- >>> :set -XDeriveFunctor -XScopedTypeVariables -XLambdaCase -XGADTs
-XFlexibleContexts
-- >>> import Control.Applicative (Const (..), Applicative (..))
+-- >>> import Control.Comonad
+-- >>> import Control.Comonad.Cofree (Cofree(..))
-- >>> import Control.Monad (void)
-- >>> import Control.Monad.Trans.Reader (Reader, ask, local, runReader)
-- >>> import Data.Char (toUpper)
@@ -145,6 +147,7 @@
-- >>> import Data.List.NonEmpty (NonEmpty (..))
-- >>> import Data.Maybe (maybeToList)
-- >>> import Data.Tree (Tree (..), drawTree)
+-- >>> import Numeric.Natural
--
-- >>> import Data.Functor.Base
--
@@ -271,10 +274,10 @@
-- go :: TreeF Int (Tree Int, Tree Int)
-- -> Tree Int
-- go (NodeF i []) = Node i [Node new []]
- -- go (NodeF i ((_orig, recur) : tts)) =
- -- -- tts :: [(Tree Int, Tree Int)]
- -- let (origs, _recurs) = unzip tts
- -- in Node i (recur : origs)
+ -- go (NodeF i ((_orig, recur) : tts))
+ -- -- tts :: [(Tree Int, Tree Int)]
+ -- = let (origs, _recurs) = unzip tts
+ -- in Node i (recur : origs)
-- :}
--
-- >>> putStrLn $ pprint4 $ insertLeftmost 999 myTree
@@ -697,7 +700,99 @@
-> f (ExceptT b m a)
distGApoT g k = fmap ExceptT . k . fmap (distGApo g) . runExceptT
--- | Course-of-value iteration
+-- | A variant of 'cata' which includes the results of all the
+-- descendents, not just the direct children.
+--
+-- Like 'para', a sub-tree is provided for each recursive position. Each
+-- node in that sub-tree is annotated with the result for that
+-- descendent. The 'Cofree' type is used to add those annotations.
+--
+-- For our running example, let's recreate GitHub's directory compression
+-- algorithm. Notice that in [the repository for this
+-- package](https://github.com/recursion-schemes/recursion-schemes), GitHub
+-- displays @src\/Data\/Functor@, not @src@:
+--
+-- 
+--
+-- GitHub does this because @src@ only contains one entry: @Data@. Similarly,
+-- @Data@ only contains one entry: @Functor@. @Functor@ contains several
+-- entries, so the compression stops there. This helps users get to the
+-- interesting folders more quickly.
+--
+-- Before we use 'histo', we need to define a helper function 'rollup'.
+-- It collects nodes until it reaches a node which doesn't have exactly one
+-- child. It also returns the labels of that node's children.
+--
+-- >>> :{
+-- let rollup :: [Cofree (TreeF node) label]
+-- -> ([node], [label])
+-- rollup [_ :< NodeF node cofrees] =
+-- let (nodes, label) = rollup cofrees
+-- in (node : nodes, label)
+-- rollup cofrees =
+-- ([], fmap extract cofrees)
+-- :}
+--
+-- >>> let foobar xs = 1 :< NodeF "foo" [2 :< NodeF "bar" xs]
+-- >>> rollup [foobar []]
+-- (["foo","bar"],[])
+-- >>> rollup [foobar [3 :< NodeF "baz" [], 4 :< NodeF "quux" []]]
+-- (["foo","bar"],[3,4])
+--
+-- The value @foobar []@ can be interpreted as the tree @NodeF "foo"
+-- [NodeF "bar" []]@, plus two annotations. The @"foo"@ node is annotated
+-- with @1@, while the @"bar"@ node is annotated with @2@. When we call
+-- 'histo' below, those annotations are recursive results of type @Int ->
+-- String@.
+--
+-- >>> :{
+-- let pprint5 :: Tree Int -> String
+-- pprint5 t = histo go t 0
+-- where
+-- go :: TreeF Int (Cofree (TreeF Int) (Int -> String))
+-- -> Int -> String
+-- go (NodeF node cofrees) indent
+-- -- cofrees :: [Cofree (TreeF Int) (Int -> String)]
+-- -- fs :: [Int -> String]
+-- = let indent' = indent + 2
+-- (nodes, fs) = rollup cofrees
+-- ss = map (\f -> f indent') fs
+-- s = replicate indent ' '
+-- ++ "* " ++ intercalate " / " (fmap show (node : nodes))
+-- in intercalate "\n" (s : ss)
+-- :}
+--
+-- >>> putStrLn $ pprint5 myTree
+-- * 0
+-- * 1
+-- * 2
+-- * 3 / 31 / 311
+-- * 3111
+-- * 3112
+--
+-- One common use for 'histo' is to cache the value computed for smaller
+-- sub-trees. In the Fibonacci example below, the recursive type is 'Natural',
+-- which is isomorphic to @[()]@. Our annotated sub-tree is thus isomorphic to
+-- a list of annotations. In our case, each annotation is the result which was
+-- computed for a smaller number. We thus have access to a list which caches
+-- all the Fibonacci numbers we have computed so far.
+--
+-- >>> :{
+-- let fib :: Natural -> Integer
+-- fib = histo go
+-- where
+-- go :: Maybe (Cofree Maybe Integer) -> Integer
+-- go Nothing = 1
+-- go (Just (_ :< Nothing)) = 1
+-- go (Just (fibNMinus1 :< Just (fibNMinus2 :< _)))
+-- = fibNMinus1 + fibNMinus2
+-- :}
+--
+-- >>> fmap fib [0..10]
+-- [1,1,2,3,5,8,13,21,34,55,89]
+--
+-- In general, @Cofree f a@ can be thought of as a cache that has the same
+-- shape as the recursive structure which was given as input.
histo :: Recursive t => (Base t (Cofree (Base t) a) -> a) -> t -> a
histo = gcata distHisto
@@ -838,12 +933,12 @@
-- where
-- go :: TreeF Int (Int -> String)
-- -> Int -> String
--- go (NodeF i fs) indent =
--- -- fs :: [Int -> String]
--- let indent' = indent + 2
--- ss = map (\f -> f indent') fs
--- s = replicate indent ' ' ++ "* " ++ show i
--- in intercalate "\n" (s : ss)
+-- go (NodeF i fs) indent
+-- -- fs :: [Int -> String]
+-- = let indent' = indent + 2
+-- ss = map (\f -> f indent') fs
+-- s = replicate indent ' ' ++ "* " ++ show i
+-- in intercalate "\n" (s : ss)
-- :}
--
-- >>> putStrLn $ pprint3 myTree