Hello community,

here is the log from the commit of package ghc-semigroupoids for 
openSUSE:Factory checked in at 2018-07-24 17:21:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-semigroupoids (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-semigroupoids.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-semigroupoids"

Tue Jul 24 17:21:43 2018 rev:8 rq:623851 version:5.3.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-semigroupoids/ghc-semigroupoids.changes      
2018-05-30 12:27:09.078600733 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-semigroupoids.new/ghc-semigroupoids.changes 
2018-07-24 17:21:45.111251319 +0200
@@ -1,0 +2,18 @@
+Wed Jul 18 14:26:40 UTC 2018 - psim...@suse.com
+
+- Cosmetic: replace tabs with blanks, strip trailing white space,
+  and update copyright headers with spec-cleaner.
+
+-------------------------------------------------------------------
+Fri Jul 13 14:32:00 UTC 2018 - psim...@suse.com
+
+- Update semigroupoids to version 5.3.1.
+  * Fix a regression introduced in `semigroupoids-5.3` in which some modules
+    regressed from `Trustworthy` to `Unsafe`.
+  * Allow building with `containers-0.6`.
+  * Add `Alt` instances for `First` and `Last` from `Data.Semigroup`, and
+    `Alt` and `Plus` instances for `First` and `Last` from `Data.Monoid`.
+  * Add missing `Apply`, `Bind`, `Extend`, `Foldable1` and `Traversable1`
+    instances for `Data.Semigroups`, `Data.Monoid` and `GHC.Generics`.
+
+-------------------------------------------------------------------
@@ -79 +96,0 @@
-

Old:
----
  semigroupoids-5.2.2.tar.gz
  semigroupoids.cabal

New:
----
  semigroupoids-5.3.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-semigroupoids.spec ++++++
--- /var/tmp/diff_new_pack.beKCiL/_old  2018-07-24 17:21:45.955252399 +0200
+++ /var/tmp/diff_new_pack.beKCiL/_new  2018-07-24 17:21:45.955252399 +0200
@@ -19,14 +19,13 @@
 %global pkg_name semigroupoids
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        5.2.2
+Version:        5.3.1
 Release:        0
 Summary:        Semigroupoids: Category sans id
 License:        BSD-2-Clause
 Group:          Development/Libraries/Haskell
 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/3.cabal#/%{pkg_name}.cabal
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-base-orphans-devel
 BuildRequires:  ghc-bifunctors-devel
@@ -97,7 +96,6 @@
 
 %prep
 %setup -q -n %{pkg_name}-%{version}
-cp -p %{SOURCE1} %{pkg_name}.cabal
 
 %build
 %ghc_lib_build

++++++ semigroupoids-5.2.2.tar.gz -> semigroupoids-5.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semigroupoids-5.2.2/.gitignore 
new/semigroupoids-5.3.1/.gitignore
--- old/semigroupoids-5.2.2/.gitignore  2018-01-18 21:07:06.000000000 +0100
+++ new/semigroupoids-5.3.1/.gitignore  2018-07-02 20:08:27.000000000 +0200
@@ -1,3 +1,4 @@
+.ghc.environment.*
 dist
 docs
 wiki
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semigroupoids-5.2.2/.travis.yml 
new/semigroupoids-5.3.1/.travis.yml
--- old/semigroupoids-5.2.2/.travis.yml 2018-01-18 21:07:06.000000000 +0100
+++ new/semigroupoids-5.3.1/.travis.yml 2018-07-02 20:08:27.000000000 +0200
@@ -1,6 +1,6 @@
 # This Travis job script has been generated by a script via
 #
-#   runghc make_travis_yml_2.hs '-o' '.travis.yml' 
'--irc-channel=irc.freenode.org#haskell-lens' '--no-no-tests-no-bench' 
'--no-installed' 'cabal.project'
+#   runghc make_travis_yml_2.hs '-o' '.travis.yml' '--ghc-head' 
'--irc-channel=irc.freenode.org#haskell-lens' '--no-no-tests-no-bench' 
'--no-unconstrained' 'cabal.project'
 #
 # For more information, see https://github.com/hvr/multi-ghc-travis
 #
@@ -36,42 +36,45 @@
 
 matrix:
   include:
-    - compiler: "ghc-7.0.4"
+    - compiler: "ghc-8.6.1"
+      env: GHCHEAD=true
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.6.1], 
sources: [hvr-ghc]}}
+    - compiler: "ghc-8.4.3"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
-      addons: {apt: {packages: [*apt_packages,cabal-install-2.0,ghc-7.0.4], 
sources: [hvr-ghc]}}
-    - compiler: "ghc-7.2.2"
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.4.3], 
sources: [hvr-ghc]}}
+    - compiler: "ghc-8.2.2"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
-      addons: {apt: {packages: [*apt_packages,cabal-install-2.0,ghc-7.2.2], 
sources: [hvr-ghc]}}
-    - compiler: "ghc-7.4.2"
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.2.2], 
sources: [hvr-ghc]}}
+    - compiler: "ghc-8.0.2"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
-      addons: {apt: {packages: [*apt_packages,cabal-install-2.0,ghc-7.4.2], 
sources: [hvr-ghc]}}
-    - compiler: "ghc-7.6.3"
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-8.0.2], 
sources: [hvr-ghc]}}
+    - compiler: "ghc-7.10.3"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
-      addons: {apt: {packages: [*apt_packages,cabal-install-2.0,ghc-7.6.3], 
sources: [hvr-ghc]}}
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.10.3], 
sources: [hvr-ghc]}}
     - compiler: "ghc-7.8.4"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
-      addons: {apt: {packages: [*apt_packages,cabal-install-2.0,ghc-7.8.4], 
sources: [hvr-ghc]}}
-    - compiler: "ghc-7.10.3"
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.8.4], 
sources: [hvr-ghc]}}
+    - compiler: "ghc-7.6.3"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
-      addons: {apt: {packages: [*apt_packages,cabal-install-2.0,ghc-7.10.3], 
sources: [hvr-ghc]}}
-    - compiler: "ghc-8.0.2"
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.6.3], 
sources: [hvr-ghc]}}
+    - compiler: "ghc-7.4.2"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
-      addons: {apt: {packages: [*apt_packages,cabal-install-2.0,ghc-8.0.2], 
sources: [hvr-ghc]}}
-    - compiler: "ghc-8.2.2"
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.4.2], 
sources: [hvr-ghc]}}
+    - compiler: "ghc-7.2.2"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
-      addons: {apt: {packages: [*apt_packages,cabal-install-2.0,ghc-8.2.2], 
sources: [hvr-ghc]}}
-    - compiler: "ghc-8.4.1"
-      env: GHCHEAD=true
-      addons: {apt: {packages: [*apt_packages,cabal-install-head,ghc-8.4.1], 
sources: [hvr-ghc]}}
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.2.2], 
sources: [hvr-ghc]}}
+    - compiler: "ghc-7.0.4"
+    # env: TEST=--disable-tests BENCH=--disable-benchmarks
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-2.2,ghc-7.0.4], 
sources: [hvr-ghc]}}
     - compiler: "ghc-head"
       env: GHCHEAD=true
-      addons: {apt: {packages: [*apt_packages,cabal-install-head,ghc-head], 
sources: [hvr-ghc]}}
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-head], 
sources: [hvr-ghc]}}
 
   allow_failures:
+    - compiler: "ghc-head"
     - compiler: "ghc-7.0.4"
     - compiler: "ghc-7.2.2"
-    - compiler: "ghc-8.4.1"
-    - compiler: "ghc-head"
+    - compiler: "ghc-8.6.1"
 
 before_install:
   - HC=${CC}
@@ -89,7 +92,8 @@
   - BENCH=${BENCH---enable-benchmarks}
   - TEST=${TEST---enable-tests}
   - HADDOCK=${HADDOCK-true}
-  - INSTALLED=${INSTALLED-true}
+  - UNCONSTRAINED=${UNCONSTRAINED-true}
+  - NOINSTALLEDCONSTRAINTS=${NOINSTALLEDCONSTRAINTS-false}
   - GHCHEAD=${GHCHEAD-false}
   - travis_retry cabal update -v
   - "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
@@ -97,7 +101,8 @@
   # Overlay Hackage Package Index for GHC HEAD: 
https://github.com/hvr/head.hackage
   - |
     if $GHCHEAD; then
-      sed -i.bak 's/-- allow-newer:.*/allow-newer: *:base, *:template-haskell, 
*:ghc, *:Cabal/' ${HOME}/.cabal/config
+      sed -i 's/-- allow-newer: .*/allow-newer: *:base/' ${HOME}/.cabal/config
+      for pkg in $($HCPKG list --simple-output); do pkg=$(echo $pkg | sed 
's/-[^-]*$//'); sed -i "s/allow-newer: /allow-newer: *:$pkg, /" 
${HOME}/.cabal/config; done
 
       echo 'repository head.hackage'                                           
             >> ${HOME}/.cabal/config
       echo '   url: http://head.hackage.haskell.org/'                          
             >> ${HOME}/.cabal/config
@@ -107,17 +112,22 @@
       echo '              
8f79fd2389ab2967354407ec852cbe73f2e8635793ac446d09461ffb99527f6e' >> 
${HOME}/.cabal/config
       echo '   key-threshold: 3'                                               
             >> ${HOME}/.cabal.config
 
+      grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
+
       cabal new-update head.hackage -v
     fi
   - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
   - "printf 'packages: \".\"\\n' > cabal.project"
-  - cat cabal.project
+  - touch cabal.project.local
+  - "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list 
--simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ 
installed/' >> cabal.project.local; done; fi"
+  - cat cabal.project || true
+  - cat cabal.project.local || true
   - if [ -f "./configure.ac" ]; then
       (cd "." && autoreconf -i);
     fi
   - rm -f cabal.project.freeze
   - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" 
--dep -j2 all
-  - rm -rf "."/.ghc.environment.* "."/dist
+  - rm -rf .ghc.environment.* "."/dist
   - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
 
 # Here starts the actual work to be performed for the package under test;
@@ -129,8 +139,10 @@
   - cd ${DISTDIR} || false
   - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
   - "printf 'packages: semigroupoids-*/*.cabal\\n' > cabal.project"
-  - cat cabal.project
-
+  - touch cabal.project.local
+  - "if ! $NOINSTALLEDCONSTRAINTS; then for pkg in $($HCPKG list 
--simple-output); do echo $pkg | sed 's/^/constraints: /' | sed 's/-[^-]*$/ 
installed/' >> cabal.project.local; done; fi"
+  - cat cabal.project || true
+  - cat cabal.project.local || true
 
   # build & run tests, build benchmarks
   - cabal new-build -w ${HC} ${TEST} ${BENCH} all
@@ -143,5 +155,5 @@
   - rm -rf ./dist-newstyle
   - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else 
echo "Skipping haddock generation";fi
 
-# REGENDATA 
["-o",".travis.yml","--irc-channel=irc.freenode.org#haskell-lens","--no-no-tests-no-bench","--no-installed","cabal.project"]
+# REGENDATA 
["-o",".travis.yml","--ghc-head","--irc-channel=irc.freenode.org#haskell-lens","--no-no-tests-no-bench","--no-unconstrained","cabal.project"]
 # EOF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semigroupoids-5.2.2/CHANGELOG.markdown 
new/semigroupoids-5.3.1/CHANGELOG.markdown
--- old/semigroupoids-5.2.2/CHANGELOG.markdown  2018-01-18 21:07:06.000000000 
+0100
+++ new/semigroupoids-5.3.1/CHANGELOG.markdown  2018-07-02 20:08:27.000000000 
+0200
@@ -1,3 +1,16 @@
+5.3.1 [2018.07.02]
+------------------
+* Fix a regression introduced in `semigroupoids-5.3` in which some modules
+  regressed from `Trustworthy` to `Unsafe`.
+
+5.3 [2018.07.02]
+----------------
+* Allow building with `containers-0.6`.
+* Add `Alt` instances for `First` and `Last` from `Data.Semigroup`, and
+  `Alt` and `Plus` instances for `First` and `Last` from `Data.Monoid`.
+* Add missing `Apply`, `Bind`, `Extend`, `Foldable1` and `Traversable1`
+  instances for `Data.Semigroups`, `Data.Monoid` and `GHC.Generics`.
+
 5.2.2 [2018.01.18]
 ------------------
 * Add `optional` to `Data.Functor.Alt` (analogous to the `optional` function
@@ -7,6 +20,8 @@
   definitions in terms of the other.
 * Allow building with GHC 8.4
 * `Apply` and `Bind` instances for `Q`, from the `template-haskell` package.
+  (As a consequence, `Data.Semigroup.Foldable` is no longer a `Trustworthy`
+  module.)
 * Add instances for `(:~:)` and `(:~~:)` from `Data.Type.Equality`, and
   `Coercion` from `Data.Type.Coercion`
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semigroupoids-5.2.2/semigroupoids.cabal 
new/semigroupoids-5.3.1/semigroupoids.cabal
--- old/semigroupoids-5.2.2/semigroupoids.cabal 2018-01-18 21:07:06.000000000 
+0100
+++ new/semigroupoids-5.3.1/semigroupoids.cabal 2018-07-02 20:08:27.000000000 
+0200
@@ -1,6 +1,6 @@
 name:          semigroupoids
 category:      Control, Comonads
-version:       5.2.2
+version:       5.3.1
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
@@ -18,7 +18,8 @@
              , GHC == 7.10.3
              , GHC == 8.0.2
              , GHC == 8.2.2
-             , GHC == 8.4.1
+             , GHC == 8.4.3
+             , GHC == 8.6.1
 build-type:    Custom
 synopsis:      Semigroupoids: Category sans id
 extra-source-files:
@@ -137,12 +138,12 @@
 library
   build-depends:
     base                >= 4.3     && < 5,
-    base-orphans        >= 0.5.4   && < 1,
+    base-orphans        >= 0.8     && < 1,
     bifunctors          >= 5       && < 6,
     semigroups          >= 0.8.3.1 && < 1,
     template-haskell,
     transformers        >= 0.2     && < 0.6,
-    transformers-compat >= 0.5     && < 0.6
+    transformers-compat >= 0.5     && < 0.7
 
   if impl(ghc >= 7.0 && < 7.2)
     build-depends: generic-deriving >= 1.11 && < 1.13
@@ -151,7 +152,7 @@
     build-depends: ghc-prim
 
   if flag(containers)
-    build-depends: containers >= 0.3 && < 0.6
+    build-depends: containers >= 0.3 && < 0.7
 
   if flag(contravariant)
     build-depends: contravariant >= 0.2.0.1 && < 2
@@ -196,6 +197,9 @@
 
   ghc-options: -Wall -fno-warn-warnings-deprecations
 
+  if impl(ghc >= 7.10)
+    ghc-options: -fno-warn-trustworthy-safe
+
 test-suite doctests
   type:             exitcode-stdio-1.0
   main-is:          doctests.hs
@@ -207,5 +211,5 @@
   else
     build-depends:
       base      >= 4      && < 5,
-      doctest   >= 0.11.1 && < 0.14,
+      doctest   >= 0.11.1 && < 0.17,
       semigroupoids
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semigroupoids-5.2.2/src/Data/Functor/Alt.hs 
new/semigroupoids-5.3.1/src/Data/Functor/Alt.hs
--- old/semigroupoids-5.2.2/src/Data/Functor/Alt.hs     2018-01-18 
21:07:06.000000000 +0100
+++ new/semigroupoids-5.3.1/src/Data/Functor/Alt.hs     2018-07-02 
20:08:27.000000000 +0200
@@ -52,7 +52,9 @@
 import Data.Functor.Product
 import Data.Functor.Reverse
 import Data.List.NonEmpty (NonEmpty(..))
+import qualified Data.Monoid as Monoid
 import Data.Semigroup (Option(..), Semigroup(..))
+import qualified Data.Semigroup as Semigroup
 import Prelude 
(($),Either(..),Maybe(..),const,IO,Ord,(++),(.),either,seq,undefined)
 import Unsafe.Coerce
 
@@ -268,3 +270,15 @@
 
 instance Alt f => Alt (Reverse f) where
   Reverse a <!> Reverse b = Reverse (a <!> b)
+
+instance Alt Semigroup.First where
+  (<!>) = (<>)
+
+instance Alt Semigroup.Last where
+  (<!>) = (<>)
+
+instance Alt Monoid.First where
+  (<!>) = mappend
+
+instance Alt Monoid.Last where
+  (<!>) = mappend
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semigroupoids-5.2.2/src/Data/Functor/Bind/Class.hs 
new/semigroupoids-5.3.1/src/Data/Functor/Bind/Class.hs
--- old/semigroupoids-5.2.2/src/Data/Functor/Bind/Class.hs      2018-01-18 
21:07:06.000000000 +0100
+++ new/semigroupoids-5.3.1/src/Data/Functor/Bind/Class.hs      2018-07-02 
20:08:27.000000000 +0200
@@ -1,10 +1,16 @@
 {-# LANGUAGE CPP #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# LANGUAGE TypeOperators #-}
+#if __GLASGOW_HASKELL__ >= 708
+{-# LANGUAGE EmptyCase #-}
+#endif
 
 #ifndef MIN_VERSION_semigroups
 #define MIN_VERSION_semigroups(x,y,z) 1
 #endif
 
-#if __GLASGOW_HASKELL__ >= 702 && __GLASGOW_HASKELL <= 706 && 
defined(MIN_VERSION_comonad) && !(MIN_VERSION_comonad(3,0,3))
+#if __GLASGOW_HASKELL__ >= 702
 {-# LANGUAGE Trustworthy #-}
 #endif
 
@@ -18,7 +24,7 @@
 
 -----------------------------------------------------------------------------
 -- |
--- Copyright   :  (C) 2011-2015 Edward Kmett
+-- Copyright   :  (C) 2011-2018 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <ekm...@gmail.com>
@@ -79,10 +85,20 @@
 import Data.Functor.Reverse
 import Data.Functor.Extend
 import Data.List.NonEmpty
+import Data.Semigroup as Semigroup
+import Data.Monoid as Monoid hiding ((<>))
 import Data.Orphans ()
+import GHC.Generics as Generics
 import Language.Haskell.TH (Q)
 import Prelude hiding (id, (.))
 
+#if MIN_VERSION_base(4,6,0)
+import Data.Ord (Down (..))
+#else
+import GHC.Exts (Down (..))
+#endif
+
+
 #if MIN_VERSION_base(4,4,0)
 import Data.Complex
 #endif
@@ -428,6 +444,46 @@
   Cokleisli f <.> Cokleisli a = Cokleisli (\w -> (f w) (a w))
 #endif
 
+instance Apply Down where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+
+instance Apply Monoid.Sum where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+instance Apply Monoid.Product where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+instance Apply Monoid.Dual where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+instance Apply Monoid.First where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+instance Apply Monoid.Last where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+#if MIN_VERSION_base(4,8,0)
+deriving instance Apply f => Apply (Monoid.Alt f)
+#endif
+-- in GHC 8.6 we'll have to deal with Apply f => Apply (Ap f) the same way
+instance Apply Semigroup.First where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+instance Apply Semigroup.Last where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+instance Apply Semigroup.Min where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+instance Apply Semigroup.Max where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+
+instance (Apply f, Apply g) => Apply (f :*: g) where
+  (a :*: b) <.> (c :*: d) = (a <.> c) :*: (b <.> d)
+
+deriving instance Apply f => Apply (M1 i t f)
+deriving instance Apply f => Apply (Rec1 f)
+
+instance (Apply f, Apply g) => Apply (f :.: g) where
+  Comp1 m <.> Comp1 n = Comp1 $ (<.>) <$> m <.> n
+
+instance Apply U1 where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+
+instance Semigroup c => Apply (K1 i c) where
+  K1 a <.> K1 b = K1 (a <> b)
+  K1 a <.  K1 b = K1 (a <> b)
+  K1 a  .> K1 b = K1 (a <> b)
+instance Apply Par1 where (<.>)=(<*>);(.>)=(*>);(<.)=(<*)
+
+instance Apply Generics.V1 where
+#if __GLASGOW_HASKELL__ >= 708
+  e <.> _ = case e of {}
+#else
+  e <.> _ = e `seq` undefined
+#endif
+
 -- | A 'Monad' sans 'return'.
 --
 -- Minimal definition: Either 'join' or '>>-'
@@ -622,6 +678,29 @@
       Nothing -> []
 #endif
 
+instance Bind Down where Down a >>- f = f a
+
+instance Bind Monoid.Sum where (>>-) = (>>=)
+instance Bind Monoid.Product where (>>-) = (>>=)
+instance Bind Monoid.Dual where (>>-) = (>>=)
+instance Bind Monoid.First where (>>-) = (>>=)
+instance Bind Monoid.Last where (>>-) = (>>=)
+#if MIN_VERSION_base(4,8,0)
+instance Bind f => Bind (Monoid.Alt f) where
+  Alt m >>- k = Alt (m >>- getAlt . k)
+#endif
+-- in GHC 8.6 we'll have to deal with Bind f => Bind (Ap f) the same way
+instance Bind Semigroup.First where (>>-) = (>>=)
+instance Bind Semigroup.Last where (>>-) = (>>=)
+instance Bind Semigroup.Min where (>>-) = (>>=)
+instance Bind Semigroup.Max where (>>-) = (>>=)
+instance Bind Generics.V1 where
+#if __GLASGOW_HASKELL__ >= 708
+  m >>- _ = case m of {}
+#else
+  m >>- _ = m `seq` undefined
+#endif
+
 infixl 4 <<.>>, <<., .>>
 
 class Bifunctor p => Biapply p where
@@ -711,4 +790,3 @@
 instance Biapply p => Biapply (WrappedBifunctor p) where
   WrapBifunctor fg <<.>> WrapBifunctor xy = WrapBifunctor (fg <<.>> xy)
   {-# INLINE (<<.>>) #-}
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semigroupoids-5.2.2/src/Data/Functor/Extend.hs 
new/semigroupoids-5.3.1/src/Data/Functor/Extend.hs
--- old/semigroupoids-5.2.2/src/Data/Functor/Extend.hs  2018-01-18 
21:07:06.000000000 +0100
+++ new/semigroupoids-5.3.1/src/Data/Functor/Extend.hs  2018-07-02 
20:08:27.000000000 +0200
@@ -1,8 +1,13 @@
 {-# LANGUAGE CPP #-}
+{-# LANGUAGE TypeOperators #-}
 
-#if __GLASGOW_HASKELL__ >= 702 && __GLASGOW_HASKELL <= 706 && 
defined(MIN_VERSION_comonad) && !(MIN_VERSION_comonad(3,0,3))
+#if __GLASGOW_HASKELL__ >= 702
 {-# LANGUAGE Trustworthy #-}
 #endif
+
+#if __GLASGOW_HASKELL__ >= 708
+{-# LANGUAGE EmptyCase #-}
+#endif
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Functor.Extend
@@ -24,8 +29,7 @@
 import Control.Category
 import Control.Monad.Trans.Identity
 import Data.Functor.Identity
-import Data.Functor.Sum (Sum(..))
-import Data.Semigroup (Semigroup(..))
+import Data.Functor.Sum as Functor (Sum(..))
 import Data.List (tails)
 import Data.List.NonEmpty (NonEmpty(..), toList)
 
@@ -50,6 +54,10 @@
 import Data.Proxy
 #endif
 
+import Data.Orphans ()
+import GHC.Generics as Generics
+import Data.Monoid as Monoid hiding ((<>))
+import Data.Semigroup as Semigroup
 
 class Functor w => Extend w where
   -- |
@@ -155,10 +163,60 @@
       []     -> []
       (a:as) -> toList (extended f (a :| as))
 
-instance (Extend f, Extend g) => Extend (Sum f g) where
+instance (Extend f, Extend g) => Extend (Functor.Sum f g) where
   extended f (InL l) = InL (extended (f . InL) l)
   extended f (InR r) = InR (extended (f . InR) r)
 
+instance (Extend f, Extend g) => Extend (f :+: g) where
+  extended f (L1 l) = L1 (extended (f . L1) l)
+  extended f (R1 r) = R1 (extended (f . R1) r)
+
+instance Extend Generics.U1 where
+  extended _ U1 = U1
+
+instance Extend Generics.V1 where
+#if __GLASGOW_HASKELL__ >= 708
+  extended _ e = case e of {}
+#else
+  extended _ e = seq e undefined
+#endif
+
+instance Extend f => Extend (Generics.M1 i t f) where
+  extended f = M1 . extended (f . M1) . unM1
+
+instance Extend Par1 where
+  extended f w@Par1{} = Par1 (f w)
+
+instance Extend f => Extend (Rec1 f) where
+  extended f = Rec1 . extended (f . Rec1) . unRec1
+
+instance Extend Monoid.Sum where
+  extended f w...@monoid.sum{} = Monoid.Sum (f w)
+
+instance Extend Monoid.Product where
+  extended f w@Monoid.Product{} = Monoid.Product (f w)
+
+instance Extend Monoid.Dual where
+  extended f w...@monoid.dual{} = Monoid.Dual (f w)
+
+#if MIN_VERSION_base(4,8,0)
+instance Extend f => Extend (Monoid.Alt f) where
+  extended f = Monoid.Alt . extended (f . Monoid.Alt) . Monoid.getAlt
+#endif
+
+-- in GHC 8.6 we'll have to deal with Apply f => Apply (Ap f) the same way
+instance Extend Semigroup.First where
+  extended f w@Semigroup.First{} = Semigroup.First (f w)
+
+instance Extend Semigroup.Last where
+  extended f w...@semigroup.last{} = Semigroup.Last (f w)
+
+instance Extend Semigroup.Min where
+  extended f w...@semigroup.min{} = Semigroup.Min (f w)
+
+instance Extend Semigroup.Max where
+  extended f w...@semigroup.max{} = Semigroup.Max (f w)
+
 -- $definition
 -- There are two ways to define an 'Extend' instance:
 --
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/semigroupoids-5.2.2/src/Data/Functor/Plus.hs 
new/semigroupoids-5.3.1/src/Data/Functor/Plus.hs
--- old/semigroupoids-5.2.2/src/Data/Functor/Plus.hs    2018-01-18 
21:07:06.000000000 +0100
+++ new/semigroupoids-5.3.1/src/Data/Functor/Plus.hs    2018-07-02 
20:08:27.000000000 +0200
@@ -1,7 +1,7 @@
 {-# LANGUAGE CPP #-}
 {-# LANGUAGE TypeOperators #-}
 
-#if __GLASGOW_HASKELL__ >= 702 && __GLASGOW_HASKELL <= 706 && 
defined(MIN_VERSION_comonad) && !(MIN_VERSION_comonad(3,0,3))
+#if __GLASGOW_HASKELL__ >= 702
 {-# LANGUAGE Trustworthy #-}
 #endif
 -----------------------------------------------------------------------------
@@ -44,6 +44,7 @@
 import Data.Functor.Compose
 import Data.Functor.Product
 import Data.Functor.Reverse
+import qualified Data.Monoid as Monoid
 import Data.Semigroup hiding (Product)
 import Prelude hiding (id, (.))
 
@@ -172,3 +173,9 @@
 
 instance Plus f => Plus (Reverse f) where
   zero = Reverse zero
+
+instance Plus Monoid.First where
+  zero = Monoid.First Nothing
+
+instance Plus Monoid.Last where
+  zero = Monoid.Last Nothing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/semigroupoids-5.2.2/src/Data/Semigroup/Foldable/Class.hs 
new/semigroupoids-5.3.1/src/Data/Semigroup/Foldable/Class.hs
--- old/semigroupoids-5.2.2/src/Data/Semigroup/Foldable/Class.hs        
2018-01-18 21:07:06.000000000 +0100
+++ new/semigroupoids-5.3.1/src/Data/Semigroup/Foldable/Class.hs        
2018-07-02 20:08:27.000000000 +0200
@@ -1,5 +1,9 @@
 {-# LANGUAGE CPP, TypeOperators #-}
 
+#if __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE Trustworthy #-}
+#endif
+
 #ifndef MIN_VERSION_semigroups
 #define MIN_VERSION_semigroups(x,y,z) 0
 #endif
@@ -33,12 +37,12 @@
 import Data.Bifunctor.Tannen
 import Data.Bifunctor.Wrapped
 import Data.Foldable
-import Data.Functor.Compose
 
 import Data.Functor.Identity
 import Data.Functor.Product as Functor
 import Data.Functor.Reverse
-import Data.Functor.Sum
+import Data.Functor.Sum as Functor
+import Data.Functor.Compose
 import Data.List.NonEmpty (NonEmpty(..))
 
 #if MIN_VERSION_base(4,4,0)
@@ -55,7 +59,10 @@
 import Data.Tree
 #endif
 
-import Data.Semigroup hiding (Product, Sum)
+import Data.Monoid as Monoid hiding ((<>))
+import Data.Semigroup as Semigroup hiding (Product, Sum)
+import Data.Orphans ()
+-- import Data.Ord -- missing Foldable, 
https://ghc.haskell.org/trac/ghc/ticket/15098#ticket
 
 #ifdef MIN_VERSION_generic_deriving
 import Generics.Deriving.Base
@@ -74,6 +81,32 @@
   fold1 = foldMap1 id
   toNonEmpty = foldMap1 (:|[])
 
+instance Foldable1 Monoid.Sum where
+  foldMap1 f (Monoid.Sum a) = f a
+
+instance Foldable1 Monoid.Product where
+  foldMap1 f (Monoid.Product a) = f a
+
+instance Foldable1 Monoid.Dual where
+  foldMap1 f (Monoid.Dual a) = f a
+
+#if MIN_VERSION_base(4,8,0)
+instance Foldable1 f => Foldable1 (Monoid.Alt f) where
+  foldMap1 g (Alt m) = foldMap1 g m
+#endif
+
+instance Foldable1 Semigroup.First where
+  foldMap1 f (Semigroup.First a) = f a
+
+instance Foldable1 Semigroup.Last where
+  foldMap1 f (Semigroup.Last a) = f a
+
+instance Foldable1 Semigroup.Min where
+  foldMap1 f (Semigroup.Min a) = f a
+
+instance Foldable1 Semigroup.Max where
+  foldMap1 f (Semigroup.Max a) = f a
+
 instance Foldable1 f => Foldable1 (Rec1 f) where
   foldMap1 f (Rec1 as) = foldMap1 f as
 
@@ -212,9 +245,9 @@
 instance Foldable1 f => Foldable1 (Reverse f) where
   foldMap1 f = getDual . foldMap1 (Dual . f) . getReverse
 
-instance (Foldable1 f, Foldable1 g) => Foldable1 (Sum f g) where
-  foldMap1 f (InL x) = foldMap1 f x
-  foldMap1 f (InR y) = foldMap1 f y
+instance (Foldable1 f, Foldable1 g) => Foldable1 (Functor.Sum f g) where
+  foldMap1 f (Functor.InL x) = foldMap1 f x
+  foldMap1 f (Functor.InR y) = foldMap1 f y
 
 instance Foldable1 NonEmpty where
   foldMap1 f (a :| []) = f a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/semigroupoids-5.2.2/src/Data/Semigroup/Traversable/Class.hs 
new/semigroupoids-5.3.1/src/Data/Semigroup/Traversable/Class.hs
--- old/semigroupoids-5.2.2/src/Data/Semigroup/Traversable/Class.hs     
2018-01-18 21:07:06.000000000 +0100
+++ new/semigroupoids-5.3.1/src/Data/Semigroup/Traversable/Class.hs     
2018-07-02 20:08:27.000000000 +0200
@@ -1,4 +1,8 @@
 {-# LANGUAGE CPP, TypeOperators #-}
+
+#if __GLASGOW_HASKELL__ >= 702
+{-# LANGUAGE Trustworthy #-}
+#endif
 -----------------------------------------------------------------------------
 -- |
 -- Copyright   :  (C) 2011-2015 Edward Kmett
@@ -36,7 +40,9 @@
 import Data.Functor.Reverse
 import Data.Functor.Sum as Functor
 import Data.List.NonEmpty (NonEmpty(..))
-import Data.Semigroup
+import Data.Monoid as Monoid hiding ((<>))
+import Data.Orphans ()
+import Data.Semigroup as Semigroup
 import Data.Semigroup.Foldable
 import Data.Semigroup.Bifoldable
 #ifdef MIN_VERSION_tagged
@@ -231,3 +237,29 @@
 instance Traversable1 g => Traversable1 (Joker g a) where
   traverse1 g = fmap Joker . traverse1 g . runJoker
   {-# INLINE traverse1 #-}
+
+instance Traversable1 Monoid.Sum where
+  traverse1 g (Monoid.Sum a) = Monoid.Sum <$> g a
+
+instance Traversable1 Monoid.Product where
+  traverse1 g (Monoid.Product a) = Monoid.Product <$> g a
+
+instance Traversable1 Monoid.Dual where
+  traverse1 g (Monoid.Dual a) = Monoid.Dual <$> g a
+
+#if MIN_VERSION_base(4,8,0)
+instance Traversable1 f => Traversable1 (Monoid.Alt f) where
+  traverse1 g (Alt m) = Alt <$> traverse1 g m
+#endif
+
+instance Traversable1 Semigroup.First where
+  traverse1 g (Semigroup.First a) = Semigroup.First <$> g a
+
+instance Traversable1 Semigroup.Last where
+  traverse1 g (Semigroup.Last a) = Semigroup.Last <$> g a
+
+instance Traversable1 Semigroup.Min where
+  traverse1 g (Semigroup.Min a) = Semigroup.Min <$> g a
+
+instance Traversable1 Semigroup.Max where
+  traverse1 g (Semigroup.Max a) = Semigroup.Max <$> g a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/semigroupoids-5.2.2/src/Data/Traversable/Instances.hs 
new/semigroupoids-5.3.1/src/Data/Traversable/Instances.hs
--- old/semigroupoids-5.2.2/src/Data/Traversable/Instances.hs   2018-01-18 
21:07:06.000000000 +0100
+++ new/semigroupoids-5.3.1/src/Data/Traversable/Instances.hs   2018-07-02 
20:08:27.000000000 +0200
@@ -1,6 +1,6 @@
 -----------------------------------------------------------------------------
 -- |
--- Copyright   :  (C) 2011-2015 Edward Kmett
+-- Copyright   :  (C) 2011-2015,2018 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <ekm...@gmail.com>


Reply via email to