Hello community,
here is the log from the commit of package ghc-profunctors for openSUSE:Factory
checked in at 2020-10-23 15:14:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-profunctors (Old)
and /work/SRC/openSUSE:Factory/.ghc-profunctors.new.3463 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-profunctors"
Fri Oct 23 15:14:31 2020 rev:16 rq:842760 version:5.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-profunctors/ghc-profunctors.changes
2020-08-28 21:36:36.116758591 +0200
+++
/work/SRC/openSUSE:Factory/.ghc-profunctors.new.3463/ghc-profunctors.changes
2020-10-23 15:14:33.362140278 +0200
@@ -1,0 +2,12 @@
+Tue Oct 6 08:56:05 UTC 2020 - [email protected]
+
+- Update profunctors to version 5.6.
+ 5.6 [2020.10.01]
+ ----------------
+ * Enable the `PolyKinds` extension. The following datatypes now have
+ polymorphic kinds: `(:->)`, `Cayley`, `Procompose`, `Rift`,
+ `ProfunctorFunctor`, `Ran`, `Codensity`, `Prep`, `Coprep`, `Star`,
`Costar`,
+ `WrappedArrow`, `Forget`.
+ * Allow building with GHC 9.0.
+
+-------------------------------------------------------------------
Old:
----
profunctors-5.5.2.tar.gz
New:
----
profunctors-5.6.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-profunctors.spec ++++++
--- /var/tmp/diff_new_pack.hFxCQ7/_old 2020-10-23 15:14:35.474141297 +0200
+++ /var/tmp/diff_new_pack.hFxCQ7/_new 2020-10-23 15:14:35.478141299 +0200
@@ -18,7 +18,7 @@
%global pkg_name profunctors
Name: ghc-%{pkg_name}
-Version: 5.5.2
+Version: 5.6
Release: 0
Summary: Profunctors
License: BSD-3-Clause
++++++ profunctors-5.5.2.tar.gz -> profunctors-5.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/.hlint.yaml
new/profunctors-5.6/.hlint.yaml
--- old/profunctors-5.5.2/.hlint.yaml 2001-09-09 03:46:40.000000000 +0200
+++ new/profunctors-5.6/.hlint.yaml 2001-09-09 03:46:40.000000000 +0200
@@ -9,11 +9,12 @@
- GADTs
- InstanceSigs
- MultiParamTypeClasses
+ - PolyKinds
- RankNTypes
- ScopedTypeVariables
- Trustworthy
- - TypeOperators
- TypeFamilies
+ - TypeOperators
- UndecidableInstances
- functions:
@@ -51,7 +52,10 @@
- ignore:
name: Eta reduce
- within: Data.Profunctor.Mapping
+ within:
+ - Data.Profunctor.Mapping
+ - Data.Profunctor.Choice
+ - Data.Profunctor.Strong
- ignore:
name: "Use tuple-section"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/.travis.yml
new/profunctors-5.6/.travis.yml
--- old/profunctors-5.5.2/.travis.yml 2001-09-09 03:46:40.000000000 +0200
+++ new/profunctors-5.6/.travis.yml 2001-09-09 03:46:40.000000000 +0200
@@ -2,11 +2,17 @@
#
# haskell-ci '--output=.travis.yml' '--config=cabal.haskell-ci'
'cabal.project'
#
+# To regenerate the script (for example after adjusting tested-with) run
+#
+# haskell-ci regenerate
+#
# For more information, see https://github.com/haskell-CI/haskell-ci
#
-# version: 0.4
+# version: 0.10
#
+version: ~> 1.0
language: c
+os: linux
dist: xenial
git:
# whether to recursively clone submodules
@@ -17,11 +23,12 @@
- irc.freenode.org#haskell-lens
skip_join: true
template:
- - "\"\\x0313profunctors\\x03/\\x0306%{branch}\\x03 \\x0314%{commit}\\x03
%{build_url} %{message}\""
+ - "\x0313profunctors\x03/\x0306%{branch}\x03 \x0314%{commit}\x03
%{build_url} %{message}"
cache:
directories:
- $HOME/.cabal/packages
- $HOME/.cabal/store
+ - $HOME/.hlint
before_cache:
- rm -fv $CABALHOME/packages/hackage.haskell.org/build-reports.log
# remove files that are regenerated by 'cabal update'
@@ -31,29 +38,36 @@
- rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar
- rm -fv $CABALHOME/packages/hackage.haskell.org/01-index.tar.idx
- rm -rfv $CABALHOME/packages/head.hackage
-matrix:
+jobs:
include:
- - compiler: ghc-8.8.1
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.8.1","cabal-install-3.0"]}}
+ - compiler: ghc-8.10.1
+ addons: {"apt":{"sources":[{"sourceline":"deb
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.10.1","cabal-install-3.2"]}}
+ os: linux
+ - compiler: ghc-8.8.3
+ addons: {"apt":{"sources":[{"sourceline":"deb
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.8.3","cabal-install-3.2"]}}
+ os: linux
- compiler: ghc-8.6.5
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.6.5","cabal-install-3.0"]}}
+ addons: {"apt":{"sources":[{"sourceline":"deb
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.6.5","cabal-install-3.2"]}}
+ os: linux
- compiler: ghc-8.4.4
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.4.4","cabal-install-3.0"]}}
+ addons: {"apt":{"sources":[{"sourceline":"deb
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.4.4","cabal-install-3.2"]}}
+ os: linux
- compiler: ghc-8.2.2
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.2.2","cabal-install-3.0"]}}
+ addons: {"apt":{"sources":[{"sourceline":"deb
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.2.2","cabal-install-3.2"]}}
+ os: linux
- compiler: ghc-8.0.2
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-8.0.2","cabal-install-3.0"]}}
+ addons: {"apt":{"sources":[{"sourceline":"deb
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-8.0.2","cabal-install-3.2"]}}
+ os: linux
- compiler: ghc-7.10.3
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.10.3","cabal-install-3.0"]}}
+ addons: {"apt":{"sources":[{"sourceline":"deb
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.10.3","cabal-install-3.2"]}}
+ os: linux
- compiler: ghc-7.8.4
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-7.8.4","cabal-install-3.0"]}}
- - compiler: ghc-head
- addons:
{"apt":{"sources":["hvr-ghc"],"packages":["ghc-head","cabal-install-head"]}}
- allow_failures:
- - compiler: ghc-head
+ addons: {"apt":{"sources":[{"sourceline":"deb
http://ppa.launchpad.net/hvr/ghc/ubuntu xenial
main","key_url":"https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x063dab2bdc0b3f9fcebc378bff3aeacef6f88286"}],"packages":["ghc-7.8.4","cabal-install-3.2"]}}
+ os: linux
before_install:
- HC=$(echo "/opt/$CC/bin/ghc" | sed 's/-/\//')
- WITHCOMPILER="-w $HC"
+ - HADDOCK=$(echo "/opt/$CC/bin/haddock" | sed 's/-/\//')
- HCPKG="$HC-pkg"
- unset CC
- CABAL=/opt/ghc/bin/cabal
@@ -62,33 +76,11 @@
- TOP=$(pwd)
- "HCNUMVER=$(${HC} --numeric-version|perl -ne
'/^(\\d+)\\.(\\d+)\\.(\\d+)(\\.(\\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 ==
0 ? $5 != 1 : $3))')"
- echo $HCNUMVER
- - CABAL="$CABAL -vnormal+nowrap+markoutput"
+ - CABAL="$CABAL -vnormal+nowrap"
- set -o pipefail
- - |
- echo 'function blue(s) { printf "\033[0;34m" s "\033[0m " }' >>
.colorful.awk
- echo 'BEGIN { state = "output"; }' >>
.colorful.awk
- echo '/^-----BEGIN CABAL OUTPUT-----$/ { state = "cabal" }' >>
.colorful.awk
- echo '/^-----END CABAL OUTPUT-----$/ { state = "output" }' >>
.colorful.awk
- echo '!/^(-----BEGIN CABAL OUTPUT-----|-----END CABAL OUTPUT-----)/ {' >>
.colorful.awk
- echo ' if (state == "cabal") {' >>
.colorful.awk
- echo ' print blue($0)' >>
.colorful.awk
- echo ' } else {' >>
.colorful.awk
- echo ' print $0' >>
.colorful.awk
- echo ' }' >>
.colorful.awk
- echo '}' >>
.colorful.awk
- - cat .colorful.awk
- - |
- color_cabal_output () {
- awk -f $TOP/.colorful.awk
- }
- - echo text | color_cabal_output
-install:
- - ${CABAL} --version
- - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2>
/dev/null || echo '?')]"
- TEST=--enable-tests
- BENCH=--enable-benchmarks
- HEADHACKAGE=false
- - if [ $HCNUMVER -gt 80801 ] ; then HEADHACKAGE=true ; fi
- rm -f $CABALHOME/config
- |
echo "verbose: normal +nowrap +markoutput" >> $CABALHOME/config
@@ -106,39 +98,39 @@
echo " prefix: $CABALHOME" >> $CABALHOME/config
echo "repository hackage.haskell.org" >> $CABALHOME/config
echo " url: http://hackage.haskell.org/" >> $CABALHOME/config
+install:
+ - ${CABAL} --version
+ - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2>
/dev/null || echo '?')]"
- |
- if $HEADHACKAGE; then
- echo "allow-newer: $($HCPKG list --simple-output | sed -E
's/([a-zA-Z-]+)-[0-9.]+/*:\1/g')" >> $CABALHOME/config
- echo "repository head.hackage.ghc.haskell.org"
>> $CABALHOME/config
- echo " url: https://ghc.gitlab.haskell.org/head.hackage/"
>> $CABALHOME/config
- echo " secure: True"
>> $CABALHOME/config
- echo " root-keys:
7541f32a4ccca4f97aea3b22f5e593ba2c0267546016b992dfadcd2fe944e55d" >>
$CABALHOME/config
- echo "
26021a13b401500c8eb2761ca95c61f2d625bfef951b939a8124ed12ecf07329" >>
$CABALHOME/config
- echo "
f76d08be13e9a61a377a85e2fb63f4c5435d40f8feb3e12eb05905edb8cdea89" >>
$CABALHOME/config
- echo " key-threshold: 3"
>> $CABALHOME/config
- fi
+ echo "program-default-options" >> $CABALHOME/config
+ echo " ghc-options: $GHCJOBS +RTS -M6G -RTS" >> $CABALHOME/config
- cat $CABALHOME/config
- rm -fv cabal.project cabal.project.local cabal.project.freeze
- travis_retry ${CABAL} v2-update -v
- - if [ $HCNUMVER -ge 80800 ] && [ $HCNUMVER -lt 80802 ] ; then (cd /tmp &&
${CABAL} v2-install $WITHCOMPILER -j2 hlint --constraint='hlint ==2.1.*' |
color_cabal_output) ; fi
+ - if [ $HCNUMVER -ge 81000 ] ; then HLINTVER=$(cd /tmp && (${CABAL}
v2-install -v $WITHCOMPILER --dry-run hlint --constraint='hlint ==2.2.*' |
perl -ne 'if (/\bhlint-(\d+(\.\d+)*)\b/) { print "$1"; last; }')); echo "HLint
version $HLINTVER" ; fi
+ - "if [ $HCNUMVER -ge 81000 ] ; then if [ ! -e
$HOME/.hlint/hlint-$HLINTVER/hlint ]; then echo \"Downloading HLint version
$HLINTVER\"; mkdir -p $HOME/.hlint; curl --write-out 'Status Code: %{http_code}
Redirects: %{num_redirects} Total time: %{time_total} Total Dsize:
%{size_download}\\n' --silent --location --output
$HOME/.hlint/hlint-$HLINTVER.tar.gz
\"https://github.com/ndmitchell/hlint/releases/download/v$HLINTVER/hlint-$HLINTVER-x86_64-linux.tar.gz\";
tar -xzv -f $HOME/.hlint/hlint-$HLINTVER.tar.gz -C $HOME/.hlint; fi ; fi"
+ - if [ $HCNUMVER -ge 81000 ] ; then mkdir -p $CABALHOME/bin && ln -sf
"$HOME/.hlint/hlint-$HLINTVER/hlint" $CABALHOME/bin/hlint ; fi
+ - if [ $HCNUMVER -ge 81000 ] ; then hlint --version ; fi
# Generate cabal.project
- rm -rf cabal.project cabal.project.local cabal.project.freeze
- touch cabal.project
- |
echo "packages: ." >> cabal.project
+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package profunctors' >>
cabal.project ; fi
+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options:
-Werror=missing-methods' >> cabal.project ; fi"
- |
- "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed
's/-[^-]*$//' | (grep -vE -- '^(profunctors)$' || true) | sed 's/^/constraints:
/' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
- cat cabal.project.local || true
- if [ -f "./configure.ac" ]; then (cd "." && autoreconf -i); fi
- - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH} | color_cabal_output
+ - ${CABAL} v2-freeze $WITHCOMPILER ${TEST} ${BENCH}
- "cat cabal.project.freeze | sed -E 's/^(constraints: *| *)//' | sed
's/any.//'"
- rm cabal.project.freeze
- - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2 all |
color_cabal_output
+ - travis_wait 40 ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} --dep -j2
all
script:
- DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
# Packaging...
- - ${CABAL} v2-sdist all | color_cabal_output
+ - ${CABAL} v2-sdist all
# Unpacking...
- mv dist-newstyle/sdist/*.tar.gz ${DISTDIR}/
- cd ${DISTDIR} || false
@@ -150,19 +142,21 @@
- touch cabal.project
- |
echo "packages: ${PKGDIR_profunctors}" >> cabal.project
+ - if [ $HCNUMVER -ge 80200 ] ; then echo 'package profunctors' >>
cabal.project ; fi
+ - "if [ $HCNUMVER -ge 80200 ] ; then echo ' ghc-options:
-Werror=missing-methods' >> cabal.project ; fi"
- |
- "for pkg in $($HCPKG list --simple-output); do echo $pkg | sed
's/-[^-]*$//' | (grep -vE -- '^(profunctors)$' || true) | sed 's/^/constraints:
/' | sed 's/$/ installed/' >> cabal.project.local; done"
- cat cabal.project || true
- cat cabal.project.local || true
# Building with tests and benchmarks...
# build & run tests, build benchmarks
- - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
+ - ${CABAL} v2-build $WITHCOMPILER ${TEST} ${BENCH} all
# HLint..
- - if [ $HCNUMVER -ge 80800 ] && [ $HCNUMVER -lt 80802 ] ; then (cd
${PKGDIR_profunctors} && hlint src) ; fi
+ - if [ $HCNUMVER -ge 81000 ] ; then (cd ${PKGDIR_profunctors} && hlint src)
; fi
# cabal check...
- (cd ${PKGDIR_profunctors} && ${CABAL} -vnormal check)
# haddock...
- - ${CABAL} v2-haddock $WITHCOMPILER ${TEST} ${BENCH} all | color_cabal_output
+ - ${CABAL} v2-haddock $WITHCOMPILER --with-haddock $HADDOCK ${TEST} ${BENCH}
all
-# REGENDATA
["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"]
+# REGENDATA
("0.10",["--output=.travis.yml","--config=cabal.haskell-ci","cabal.project"])
# EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/CHANGELOG.markdown
new/profunctors-5.6/CHANGELOG.markdown
--- old/profunctors-5.5.2/CHANGELOG.markdown 2001-09-09 03:46:40.000000000
+0200
+++ new/profunctors-5.6/CHANGELOG.markdown 2001-09-09 03:46:40.000000000
+0200
@@ -1,3 +1,11 @@
+5.6 [2020.10.01]
+----------------
+* Enable the `PolyKinds` extension. The following datatypes now have
+ polymorphic kinds: `(:->)`, `Cayley`, `Procompose`, `Rift`,
+ `ProfunctorFunctor`, `Ran`, `Codensity`, `Prep`, `Coprep`, `Star`, `Costar`,
+ `WrappedArrow`, `Forget`.
+* Allow building with GHC 9.0.
+
5.5.2 [2020.02.13]
------------------
* Add `Cochoice`, `Costrong`, `Closed`, `Traversing`, and `Mapping` instances
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/profunctors.cabal
new/profunctors-5.6/profunctors.cabal
--- old/profunctors-5.5.2/profunctors.cabal 2001-09-09 03:46:40.000000000
+0200
+++ new/profunctors-5.6/profunctors.cabal 2001-09-09 03:46:40.000000000
+0200
@@ -1,6 +1,6 @@
name: profunctors
category: Control, Categories
-version: 5.5.2
+version: 5.6
license: BSD3
cabal-version: >= 1.10
license-file: LICENSE
@@ -18,7 +18,8 @@
, GHC == 8.2.2
, GHC == 8.4.4
, GHC == 8.6.5
- , GHC == 8.8.1
+ , GHC == 8.8.3
+ , GHC == 8.10.1
build-type: Simple
extra-source-files:
.ghci
@@ -70,6 +71,9 @@
if impl(ghc>=8.0)
ghc-options: -Wno-trustworthy-safe
+ if impl(ghc >= 8.6)
+ ghc-options: -Wno-star-is-type
+
hs-source-dirs: src
default-language: Haskell2010
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Adjunction.hs
new/profunctors-5.6/src/Data/Profunctor/Adjunction.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Adjunction.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Adjunction.hs 2001-09-09
03:46:40.000000000 +0200
@@ -22,6 +22,8 @@
-- 'unit' '.' 'counit' ≡ 'id'
-- 'counit' '.' 'unit' ≡ 'id'
-- @
+
+-- ProfunctorAdjunction :: ((Type -> Type -> Type) -> (Type -> Type -> Type))
-> ((Type -> Type -> Type) -> (Type -> Type -> Type)) -> Constraint
class (ProfunctorFunctor f, ProfunctorFunctor u) => ProfunctorAdjunction f u |
f -> u, u -> f where
unit :: Profunctor p => p :-> u (f p)
counit :: Profunctor p => f (u p) :-> p
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Cayley.hs
new/profunctors-5.6/src/Data/Profunctor/Cayley.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Cayley.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Cayley.hs 2001-09-09
03:46:40.000000000 +0200
@@ -1,3 +1,4 @@
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE Trustworthy #-}
-----------------------------------------------------------------------------
@@ -23,7 +24,11 @@
import Data.Profunctor.Unsafe
import Prelude hiding ((.), id)
--- static arrows
+-- | Static arrows. Lifted by 'Applicative'.
+--
+-- 'Cayley' has a polymorphic kind since @5.6@.
+
+-- Cayley :: (k3 -> Type) -> (k1 -> k2 -> k3) -> (k1 -> k2 -> Type)
newtype Cayley f p a b = Cayley { runCayley :: f (p a b) }
instance Functor f => ProfunctorFunctor (Cayley f) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Choice.hs
new/profunctors-5.6/src/Data/Profunctor/Choice.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Choice.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Choice.hs 2001-09-09
03:46:40.000000000 +0200
@@ -42,6 +42,7 @@
import Data.Profunctor.Types
import Data.Profunctor.Unsafe
import Data.Tagged
+
#if __GLASGOW_HASKELL__ < 710
import Data.Traversable
import Prelude hiding (id,(.),sequence)
@@ -197,7 +198,7 @@
promap f (TambaraSum p) = TambaraSum (f p)
instance ProfunctorComonad TambaraSum where
- proextract (TambaraSum p) = dimap Left (\(Left a) -> a) p
+ proextract (TambaraSum p) = dimap Left fromEither p
produplicate (TambaraSum p) = TambaraSum (TambaraSum $ dimap hither yon p)
where
hither :: Either (Either a b) c -> Either a (Either b c)
hither (Left (Left x)) = Left x
@@ -214,7 +215,7 @@
{-# INLINE dimap #-}
instance Profunctor p => Choice (TambaraSum p) where
- left' = runTambaraSum . produplicate
+ left' p = runTambaraSum $ produplicate p
{-# INLINE left' #-}
instance Category p => Category (TambaraSum p) where
@@ -238,7 +239,10 @@
-- 'untambaraSum' '.' 'tambaraSum' ≡ 'id'
-- @
untambaraSum :: Profunctor q => (p :-> TambaraSum q) -> p :-> q
-untambaraSum f p = dimap Left (\(Left a) -> a) $ runTambaraSum $ f p
+untambaraSum f p = dimap Left fromEither $ runTambaraSum $ f p
+
+fromEither :: Either a a -> a
+fromEither = either id id
----------------------------------------------------------------------------
-- * PastroSum
@@ -265,7 +269,7 @@
promap f (PastroSum l m r) = PastroSum l (f m) r
instance ProfunctorMonad PastroSum where
- proreturn p = PastroSum (\(Left a)-> a) p Left
+ proreturn p = PastroSum fromEither p Left
projoin (PastroSum l (PastroSum m n o) q) = PastroSum lm n oq where
oq a = case q a of
Left b -> Left <$> o b
@@ -401,7 +405,7 @@
-- 'uncotambaraSum' '.' 'cotambaraSum' ≡ 'id'
-- @
cotambaraSum :: Cochoice p => (p :-> q) -> p :-> CotambaraSum q
-cotambaraSum = CotambaraSum
+cotambaraSum f = CotambaraSum f
-- |
-- @
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Closed.hs
new/profunctors-5.6/src/Data/Profunctor/Closed.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Closed.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Closed.hs 2001-09-09
03:46:40.000000000 +0200
@@ -120,11 +120,11 @@
promap f (Closure p) = Closure (f p)
instance ProfunctorComonad Closure where
- proextract = dimap const ($ ()) . runClosure
+ proextract p = dimap const ($ ()) $ runClosure p
produplicate (Closure p) = Closure $ Closure $ dimap uncurry curry p
instance Profunctor p => Closed (Closure p) where
- closed = runClosure . produplicate
+ closed p = runClosure $ produplicate p
instance Strong p => Strong (Closure p) where
first' (Closure p) = Closure $ dimap hither yon $ first' p
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Composition.hs
new/profunctors-5.6/src/Data/Profunctor/Composition.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Composition.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Composition.hs 2001-09-09
03:46:40.000000000 +0200
@@ -1,8 +1,9 @@
{-# LANGUAGE GADTs #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE UndecidableInstances #-}
-----------------------------------------------------------------------------
-- |
@@ -60,6 +61,10 @@
-- see Dan Piponi's article:
--
-- <http://blog.sigfpe.com/2011/07/profunctors-in-haskell.html>
+--
+-- 'Procompose' has a polymorphic kind since @5.6@.
+
+-- Procompose :: (k1 -> k2 -> Type) -> (k3 -> k1 -> Type) -> (k3 -> k2 -> Type)
data Procompose p q d c where
Procompose :: p x c -> q d x -> Procompose p q d c
@@ -237,7 +242,15 @@
-- * Rift
----------------------------------------------------------------------------
--- | This represents the right Kan lift of a 'Profunctor' @q@ along a
'Profunctor' @p@ in a limited version of the 2-category of Profunctors where
the only object is the category Hask, 1-morphisms are profunctors composed and
compose with Profunctor composition, and 2-morphisms are just natural
transformations.
+-- | This represents the right Kan lift of a 'Profunctor' @q@ along a
+-- 'Profunctor' @p@ in a limited version of the 2-category of Profunctors where
+-- the only object is the category Hask, 1-morphisms are profunctors composed
+-- and compose with Profunctor composition, and 2-morphisms are just natural
+-- transformations.
+--
+-- 'Rift' has a polymorphic kind since @5.6@.
+
+-- Rift :: (k3 -> k2 -> Type) -> (k1 -> k2 -> Type) -> (k1 -> k3 -> Type)
newtype Rift p q a b = Rift { runRift :: forall x. p b x -> q a x }
instance ProfunctorFunctor (Rift p) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Monad.hs
new/profunctors-5.6/src/Data/Profunctor/Monad.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Monad.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Monad.hs 2001-09-09
03:46:40.000000000 +0200
@@ -1,4 +1,5 @@
{-# LANGUAGE CPP #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeOperators #-}
-----------------------------------------------------------------------------
@@ -19,6 +20,9 @@
import Data.Bifunctor.Sum
import Data.Profunctor.Types
+-- | 'ProfunctorFunctor' has a polymorphic kind since @5.6@.
+
+-- ProfunctorFunctor :: ((Type -> Type -> Type) -> (k1 -> k2 -> Type)) ->
Constraint
class ProfunctorFunctor t where
-- | Laws:
--
@@ -26,7 +30,7 @@
-- 'promap' f '.' 'promap' g ≡ 'promap' (f '.' g)
-- 'promap' 'id' ≡ 'id'
-- @
- promap :: Profunctor p => (p :-> q) -> t p :-> t q
+ promap :: Profunctor p => (p :-> q) -> t p :-> t q
instance Functor f => ProfunctorFunctor (Tannen f) where
promap f (Tannen g) = Tannen (fmap f g)
@@ -46,6 +50,8 @@
-- 'projoin' '.' 'promap' 'proreturn' ≡ 'id'
-- 'projoin' '.' 'projoin' ≡ 'projoin' '.' 'promap' 'projoin'
-- @
+
+-- ProfunctorMonad :: ((Type -> Type -> Type) -> (Type -> Type -> Type)) ->
Constraint
class ProfunctorFunctor t => ProfunctorMonad t where
proreturn :: Profunctor p => p :-> t p
projoin :: Profunctor p => t (t p) :-> t p
@@ -71,6 +77,8 @@
-- 'promap' 'proextract' '.' 'produplicate' ≡ 'id'
-- 'produplicate' '.' 'produplicate' ≡ 'promap' 'produplicate' '.'
'produplicate'
-- @
+
+-- ProfunctorComonad :: ((Type -> Type -> Type) -> (Type -> Type -> Type)) ->
Constraint
class ProfunctorFunctor t => ProfunctorComonad t where
proextract :: Profunctor p => t p :-> p
produplicate :: Profunctor p => t p :-> t (t p)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Ran.hs
new/profunctors-5.6/src/Data/Profunctor/Ran.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Ran.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Ran.hs 2001-09-09
03:46:40.000000000 +0200
@@ -1,3 +1,4 @@
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
@@ -32,7 +33,15 @@
-- * Ran
--------------------------------------------------------------------------------
--- | This represents the right Kan extension of a 'Profunctor' @q@ along a
'Profunctor' @p@ in a limited version of the 2-category of Profunctors where
the only object is the category Hask, 1-morphisms are profunctors composed and
compose with Profunctor composition, and 2-morphisms are just natural
transformations.
+-- | This represents the right Kan extension of a 'Profunctor' @q@ along a
+-- 'Profunctor' @p@ in a limited version of the 2-category of Profunctors where
+-- the only object is the category Hask, 1-morphisms are profunctors composed
+-- and compose with Profunctor composition, and 2-morphisms are just natural
+-- transformations.
+--
+-- 'Ran' has a polymorphic kind since @5.6@.
+
+-- Ran :: (k1 -> k2 -> Type) -> (k1 -> k3 -> Type) -> (k2 -> k3 -> Type)
newtype Ran p q a b = Ran { runRan :: forall x. p x a -> q x b }
instance ProfunctorFunctor (Ran p) where
@@ -88,7 +97,13 @@
-- * Codensity
--------------------------------------------------------------------------------
--- | This represents the right Kan extension of a 'Profunctor' @p@ along
itself. This provides a generalization of the \"difference list\" trick to
profunctors.
+-- | This represents the right Kan extension of a 'Profunctor' @p@ along
+-- itself. This provides a generalization of the \"difference list\" trick to
+-- profunctors.
+--
+-- 'Codensity' has a polymorphic kind since @5.6@.
+
+-- Codensity :: (k1 -> k2 -> Type) -> (k2 -> k2 -> Type)
newtype Codensity p a b = Codensity { runCodensity :: forall x. p x a -> p x b
}
instance Profunctor p => Profunctor (Codensity p) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Rep.hs
new/profunctors-5.6/src/Data/Profunctor/Rep.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Rep.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Rep.hs 2001-09-09
03:46:40.000000000 +0200
@@ -1,11 +1,12 @@
-{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE UndecidableInstances #-}
-{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE PolyKinds #-}
+{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
-{-# LANGUAGE GADTs #-}
-{-# LANGUAGE CPP #-}
+{-# LANGUAGE UndecidableInstances #-}
-----------------------------------------------------------------------------
-- |
-- Module : Data.Profunctor.Rep
@@ -178,6 +179,10 @@
--
-- This gives rise to a monad in @Prof@, @('Star'.'Prep')@, and
-- a comonad in @[Hask,Hask]@ @('Prep'.'Star')@
+--
+-- 'Prep' has a polymorphic kind since @5.6@.
+
+-- Prep :: (Type -> k -> Type) -> (k -> Type)
data Prep p a where
Prep :: x -> p x a -> Prep p a
@@ -210,6 +215,9 @@
-- * Coprep
--------------------------------------------------------------------------------
+-- | 'Prep' has a polymorphic kind since @5.6@.
+
+-- Coprep :: (k -> Type -> Type) -> (k -> Type)
newtype Coprep p a = Coprep { runCoprep :: forall r. p a r -> r }
instance Profunctor p => Functor (Coprep p) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Strong.hs
new/profunctors-5.6/src/Data/Profunctor/Strong.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Strong.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Strong.hs 2001-09-09
03:46:40.000000000 +0200
@@ -185,7 +185,7 @@
yon ~(x,~(y,z)) = ((x,y),z)
instance Profunctor p => Strong (Tambara p) where
- first' = runTambara . produplicate
+ first' p = runTambara $ produplicate p
{-# INLINE first' #-}
instance Category p => Category (Tambara p) where
@@ -425,7 +425,7 @@
-- 'uncotambara' '.' 'cotambara' ≡ 'id'
-- @
cotambara :: Costrong p => (p :-> q) -> p :-> Cotambara q
-cotambara = Cotambara
+cotambara f = Cotambara f
-- |
-- @
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Types.hs
new/profunctors-5.6/src/Data/Profunctor/Types.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Types.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Types.hs 2001-09-09
03:46:40.000000000 +0200
@@ -1,7 +1,8 @@
{-# LANGUAGE CPP #-}
-{-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE Trustworthy #-}
@@ -46,6 +47,10 @@
import Prelude hiding (id,(.))
infixr 0 :->
+
+-- | (':->') has a polymorphic kind since @5.6@.
+
+-- (:->) :: forall k1 k2. (k1 -> k2 -> Type) -> (k1 -> k2 -> Type) -> Type
type p :-> q = forall a b. p a b -> q a b
------------------------------------------------------------------------------
@@ -53,6 +58,10 @@
------------------------------------------------------------------------------
-- | Lift a 'Functor' into a 'Profunctor' (forwards).
+--
+-- 'Star' has a polymorphic kind since @5.6@.
+
+-- Star :: (k -> Type) -> (Type -> k -> Type)
newtype Star f d c = Star { runStar :: d -> f c }
instance Functor f => Profunctor (Star f) where
@@ -108,6 +117,10 @@
------------------------------------------------------------------------------
-- | Lift a 'Functor' into a 'Profunctor' (backwards).
+--
+-- 'Costar' has a polymorphic kind since @5.6@.
+
+-- Costar :: (k -> Type) -> k -> Type -> Type
newtype Costar f d c = Costar { runCostar :: f d -> c }
instance Functor f => Profunctor (Costar f) where
@@ -145,6 +158,10 @@
------------------------------------------------------------------------------
-- | Wrap an arrow for use as a 'Profunctor'.
+--
+-- 'WrappedArrow' has a polymorphic kind since @5.6@.
+
+-- WrappedArrow :: (k1 -> k2 -> Type) -> (k1 -> k2 -> Type)
newtype WrappedArrow p a b = WrapArrow { unwrapArrow :: p a b }
instance Category p => Category (WrappedArrow p) where
@@ -198,6 +215,9 @@
-- Forget
------------------------------------------------------------------------------
+-- | 'Forget' has a polymorphic kind since @5.6@.
+
+-- Forget :: Type -> Type -> k -> Type
newtype Forget r a b = Forget { runForget :: a -> r }
instance Profunctor (Forget r) where
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor/Yoneda.hs
new/profunctors-5.6/src/Data/Profunctor/Yoneda.hs
--- old/profunctors-5.5.2/src/Data/Profunctor/Yoneda.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor/Yoneda.hs 2001-09-09
03:46:40.000000000 +0200
@@ -2,7 +2,6 @@
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE Trustworthy #-}
-----------------------------------------------------------------------------
-- |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/profunctors-5.5.2/src/Data/Profunctor.hs
new/profunctors-5.6/src/Data/Profunctor.hs
--- old/profunctors-5.5.2/src/Data/Profunctor.hs 2001-09-09
03:46:40.000000000 +0200
+++ new/profunctors-5.6/src/Data/Profunctor.hs 2001-09-09 03:46:40.000000000
+0200
@@ -1,6 +1,3 @@
-{-# LANGUAGE TypeOperators #-}
-{-# LANGUAGE RankNTypes #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-----------------------------------------------------------------------------
-- |
-- Copyright : (C) 2011-2015 Edward Kmett,