Hello community,

here is the log from the commit of package ghc-bifunctors for openSUSE:Factory 
checked in at 2015-08-25 07:19:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-bifunctors (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-bifunctors.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-bifunctors"

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-bifunctors/ghc-bifunctors.changes    
2015-05-29 10:38:46.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-bifunctors.new/ghc-bifunctors.changes       
2015-08-25 08:48:10.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Aug  6 19:08:19 UTC 2015 - [email protected]
+
+- update to version 5
+* Inverted the dependency on semigroupoids. We can support a much wider array 
of base 
+  versions than it can.
+* Added flags
+
+-------------------------------------------------------------------

Old:
----
  bifunctors-4.2.1.tar.gz

New:
----
  bifunctors-5.tar.gz

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

Other differences:
------------------
++++++ ghc-bifunctors.spec ++++++
--- /var/tmp/diff_new_pack.QwyvmN/_old  2015-08-25 08:48:10.000000000 +0200
+++ /var/tmp/diff_new_pack.QwyvmN/_new  2015-08-25 08:48:10.000000000 +0200
@@ -1,5 +1,5 @@
 #
-# spec file for package ghc
+# spec file for package ghc-bifunctors
 #
 # Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
@@ -18,8 +18,8 @@
 
 %global pkg_name bifunctors
 
-Name:           ghc-%{pkg_name}
-Version:        4.2.1
+Name:           ghc-bifunctors
+Version:        5
 Release:        0
 Summary:        Bifunctors
 License:        BSD-2-Clause
@@ -32,13 +32,12 @@
 BuildRequires:  ghc-Cabal-devel
 BuildRequires:  ghc-rpm-macros
 # Begin cabal-rpm deps:
-BuildRequires:  ghc-semigroupoids-devel
 BuildRequires:  ghc-semigroups-devel
 BuildRequires:  ghc-tagged-devel
 # End cabal-rpm deps
 
 %description
-Bifunctors.
+The bifunctors package
 
 
 %package devel

++++++ bifunctors-4.2.1.tar.gz -> bifunctors-5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/.travis.yml 
new/bifunctors-5/.travis.yml
--- old/bifunctors-4.2.1/.travis.yml    2015-03-06 23:32:17.000000000 +0100
+++ new/bifunctors-5/.travis.yml        2015-05-15 08:56:51.000000000 +0200
@@ -1,50 +1,45 @@
-# See https://github.com/hvr/multi-ghc-travis for more information
-
-notifications:
-  irc:
-    channels:
-      - "irc.freenode.org#haskell-lens"
-    skip_join: true
-    template:
-      - "\x0313bifunctors\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 
%{build_url} %{message}"
-
 env:
- - GHCVER=7.4.1
- - GHCVER=7.4.2
- - GHCVER=7.6.1
- - GHCVER=7.6.2
- - GHCVER=7.6.3
- - GHCVER=7.8.2
- - GHCVER=head
+ - GHCVER=7.0.1 CABALVER=1.16
+ - GHCVER=7.0.4 CABALVER=1.16
+ - GHCVER=7.2.2 CABALVER=1.16
+ - GHCVER=7.4.2 CABALVER=1.16
+ - GHCVER=7.6.3 CABALVER=1.16
+ - GHCVER=7.8.4 CABALVER=1.18
+ - GHCVER=7.10.1 CABALVER=1.22
+ - GHCVER=head CABALVER=1.22
 
 matrix:
   allow_failures:
-   - env: GHCVER=head
+   - env: GHCVER=head CABALVER=1.20
 
 before_install:
- - sudo add-apt-repository -y ppa:hvr/ghc
- - sudo apt-get update
- - sudo apt-get install cabal-install-1.18 ghc-$GHCVER
- - export PATH=/opt/ghc/$GHCVER/bin:~/.cabal/bin:$PATH
+ - travis_retry sudo add-apt-repository -y ppa:hvr/ghc
+ - travis_retry sudo apt-get update
+ - travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER
+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
+ - cabal --version
 
 install:
- - cabal-1.18 update
- - cabal-1.18 install --only-dependencies --enable-tests
- - cabal-1.18 install happy packunused packdeps
+ - travis_retry cabal update
+ - cabal install --enable-tests --only-dependencies
 
 script:
- - cabal-1.18 configure --enable-tests -v2
- - cabal-1.18 build --ghc-options=-ddump-minimal-imports
- # - packunused
- - packdeps bifunctors.cabal
- - cabal-1.18 test
- - cabal-1.18 check
- - cabal-1.18 sdist
- - export SRC_TGZ=$(cabal-1.18 info . | awk '{print $2 ".tar.gz";exit}') ;
+ - cabal configure -v2 --enable-tests
+ - cabal build
+ - cabal sdist
+ - export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
    cd dist/;
    if [ -f "$SRC_TGZ" ]; then
-      cabal-1.18 install "$SRC_TGZ";
+      cabal install "$SRC_TGZ";
    else
       echo "expected '$SRC_TGZ' not found";
       exit 1;
    fi
+
+notifications:
+  irc:
+    channels:
+      - "irc.freenode.org#haskell-lens"
+    skip_join: true
+    template:
+      - "\x0313bifunctors\x0f/\x0306%{branch}\x0f \x0314%{commit}\x0f 
%{message} \x0302\x1f%{build_url}\x0f"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/CHANGELOG.markdown 
new/bifunctors-5/CHANGELOG.markdown
--- old/bifunctors-4.2.1/CHANGELOG.markdown     1970-01-01 01:00:00.000000000 
+0100
+++ new/bifunctors-5/CHANGELOG.markdown 2015-05-15 08:56:51.000000000 +0200
@@ -0,0 +1,54 @@
+5
+-
+* Inverted the dependency on `semigroupoids`. We can support a much wider 
array of `base` versions than it can.
+* Added flags
+
+4.2.1
+-----
+* Support `Arg` from `semigroups` 0.16.2
+* Fixed a typo.
+
+4.2
+---
+* Bumped dependency on `tagged`, which is required to build cleanly on GHC 7.9+
+* Only export `Data.Bifunctor` when building on GHC < 7.9, otherwise it comes 
from `base`.
+
+4.1.1.1
+-------
+* Added documentation for 'Bifoldable' and 'Bitraversable'
+
+4.1.1
+-----
+* Added `Data.Bifunctor.Join`
+* Fixed improper lower bounds on `base`
+
+4.1.0.1
+-------
+* Updated to BSD 2-clause license
+
+4.1
+---
+* Added product bifunctors
+
+4.0
+---
+* Compatibility with `semigroupoids` 4.0
+
+3.2
+---
+* Added missing product instances for `Biapplicative` and `Biapply`.
+
+3.1
+-----
+* Added `Data.Biapplicative`.
+* Added the `Clown` and `Joker` bifunctors from Conor McBride's "Clowns to the 
left of me, Jokers to the right."
+* Added instances for `Const`, higher tuples
+* Added `Tagged` instances.
+
+3.0.4
+-----
+* Added `Data.Bifunctor.Flip` and `Data.Bifunctor.Wrapped`.
+
+3.0.3
+---
+* Removed upper bounds from my other package dependencies
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/LICENSE new/bifunctors-5/LICENSE
--- old/bifunctors-4.2.1/LICENSE        2015-03-06 23:32:17.000000000 +0100
+++ new/bifunctors-5/LICENSE    2015-05-15 08:56:51.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright 2008-2013 Edward Kmett
+Copyright 2008-2015 Edward Kmett
 
 All rights reserved.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/README.markdown 
new/bifunctors-5/README.markdown
--- old/bifunctors-4.2.1/README.markdown        1970-01-01 01:00:00.000000000 
+0100
+++ new/bifunctors-5/README.markdown    2015-05-15 08:56:51.000000000 +0200
@@ -0,0 +1,13 @@
+bifunctors
+==========
+
+[![Build 
Status](https://secure.travis-ci.org/ekmett/bifunctors.png?branch=master)](http://travis-ci.org/ekmett/bifunctors)
+
+Contact Information
+-------------------
+
+Contributions and bug reports are welcome!
+
+Please feel free to contact me through github or on the #haskell IRC channel 
on irc.freenode.net.
+
+-Edward Kmett
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/bifunctors.cabal 
new/bifunctors-5/bifunctors.cabal
--- old/bifunctors-4.2.1/bifunctors.cabal       2015-03-06 23:32:17.000000000 
+0100
+++ new/bifunctors-5/bifunctors.cabal   2015-05-15 08:56:51.000000000 +0200
@@ -1,6 +1,6 @@
 name:          bifunctors
 category:      Data, Functors
-version:       4.2.1
+version:       5
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -9,24 +9,43 @@
 stability:     provisional
 homepage:      http://github.com/ekmett/bifunctors/
 bug-reports:   http://github.com/ekmett/bifunctors/issues
-copyright:     Copyright (C) 2008-2013 Edward A. Kmett
+copyright:     Copyright (C) 2008-2015 Edward A. Kmett
 synopsis:      Bifunctors
 description:   Bifunctors
 build-type:    Simple
-extra-source-files: .travis.yml
+tested-with:   GHC == 7.0.1, GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.2, GHC == 
7.6.3, GHC == 7.8.4, GHC == 7.10.1
+extra-source-files: .travis.yml CHANGELOG.markdown README.markdown
 
 source-repository head
   type: git
   location: git://github.com/ekmett/bifunctors.git
 
+flag semigroups
+  default: True
+  manual: True
+  description:
+    You can disable the use of the `semigroups` package using `-f-semigroups`.
+    .
+    Disabing this is an unsupported configuration, but it may be useful for 
accelerating builds in sandboxes for expert users.
+
+flag tagged
+  default: True
+  manual: True
+  description:
+    You can disable the use of the `tagged` package using `-f-tagged`.
+    .
+    Disabing this is an unsupported configuration, but it may be useful for 
accelerating builds in sandboxes for expert users.
+
 library
   hs-source-dirs: src
   build-depends:
-    base          >= 4.5 && < 5,
-    semigroups    >= 0.8.3.1 && < 1,
-    semigroupoids == 4.*,
+    base >= 4 && < 5
+
+  if flag(tagged)
+    build-depends: tagged >= 0.7.3 && < 1
 
-    tagged        >= 0.7.3 && < 1
+  if flag(semigroups)
+    build-depends: semigroups >= 0.8.3.1 && < 1
 
   if impl(ghc<7.9)
     hs-source-dirs: old-src
@@ -34,7 +53,7 @@
 
   exposed-modules:
     Data.Biapplicative
-    Data.Bifunctor.Apply
+    Data.Bifoldable
     Data.Bifunctor.Biff
     Data.Bifunctor.Clown
     Data.Bifunctor.Flip
@@ -43,9 +62,6 @@
     Data.Bifunctor.Product
     Data.Bifunctor.Tannen
     Data.Bifunctor.Wrapped
-    Data.Bifoldable
     Data.Bitraversable
-    Data.Semigroup.Bifoldable
-    Data.Semigroup.Bitraversable
 
   ghc-options: -Wall
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/old-src/Data/Bifunctor.hs 
new/bifunctors-5/old-src/Data/Bifunctor.hs
--- old/bifunctors-4.2.1/old-src/Data/Bifunctor.hs      2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/old-src/Data/Bifunctor.hs  2015-05-15 08:56:51.000000000 
+0200
@@ -1,8 +1,11 @@
 {-# LANGUAGE CPP #-}
+
+#ifndef MIN_VERSION_semigroups
+#define MIN_VERSION_semigroups(x,y,z) 0
+#endif
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifunctor
--- Copyright   :  (C) 2008-2013 Edward Kmett,
+-- Copyright   :  (C) 2008-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -15,8 +18,14 @@
   ) where
 
 import Control.Applicative
-import Data.Tagged
+
+#if MIN_VERSION_semigroups(0,16,2)
 import Data.Semigroup
+#endif
+
+#ifdef MIN_VERSION_tagged
+import Data.Tagged
+#endif
 
 -- | Minimal definition either 'bimap' or 'first' and 'second'
 
@@ -97,6 +106,14 @@
   bimap f g ~(x, y, z, a, b) = (x, y, z, f a, g b)
   {-# INLINE bimap #-}
 
+instance Bifunctor ((,,,,,) x y z w) where
+  bimap f g ~(x, y, z, w, a, b) = (x, y, z, w, f a, g b)
+  {-# INLINE bimap #-}
+
+instance Bifunctor ((,,,,,,) x y z w v) where
+  bimap f g ~(x, y, z, w, v, a, b) = (x, y, z, w, v, f a, g b)
+  {-# INLINE bimap #-}
+
 instance Bifunctor Either where
   bimap f _ (Left a) = Left (f a)
   bimap _ g (Right b) = Right (g b)
@@ -106,6 +123,8 @@
   bimap f _ (Const a) = Const (f a)
   {-# INLINE bimap #-}
 
+#ifdef MIN_VERSION_tagged
 instance Bifunctor Tagged where
   bimap _ g (Tagged b) = Tagged (g b)
   {-# INLINE bimap #-}
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Biapplicative.hs 
new/bifunctors-5/src/Data/Biapplicative.hs
--- old/bifunctors-4.2.1/src/Data/Biapplicative.hs      2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Biapplicative.hs  2015-05-15 08:56:51.000000000 
+0200
@@ -1,8 +1,11 @@
 {-# LANGUAGE CPP #-}
+
+#ifndef MIN_VERSION_semigroups
+#define MIN_VERSION_semigroups(x,y,z) 0
+#endif
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifunctor.Apply
--- Copyright   :  (C) 2011-2013 Edward Kmett,
+-- Copyright   :  (C) 2011-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -22,11 +25,21 @@
 
 import Control.Applicative
 import Data.Bifunctor
-import Data.Bifunctor.Apply ((<<$>>))
+
+#if MIN_VERSION_semigroups(0,16,2)
 import Data.Semigroup
+#else
+import Data.Monoid
+#endif
+
+#ifdef MIN_VERSION_tagged
 import Data.Tagged
+#endif
 
-infixl 4 <<*>>, <<*, *>>, <<**>>
+infixl 4 <<$>>, <<*>>, <<*, *>>, <<**>>
+(<<$>>) :: (a -> b) -> a -> b
+(<<$>>) = id
+{-# INLINE (<<$>>) #-}
 
 class Bifunctor p => Biapplicative p where
   bipure :: a -> b -> p a b
@@ -95,12 +108,26 @@
   (x, y, z, f, g) <<*>> (x', y', z', a, b) = (mappend x x', mappend y y', 
mappend z z', f a, g b)
   {-# INLINE (<<*>>) #-}
 
+instance (Monoid x, Monoid y, Monoid z, Monoid w) => Biapplicative ((,,,,,) x 
y z w) where
+  bipure = (,,,,,) mempty mempty mempty mempty
+  {-# INLINE bipure #-}
+  (x, y, z, w, f, g) <<*>> (x', y', z', w', a, b) = (mappend x x', mappend y 
y', mappend z z', mappend w w', f a, g b)
+  {-# INLINE (<<*>>) #-}
+
+instance (Monoid x, Monoid y, Monoid z, Monoid w, Monoid v) => Biapplicative 
((,,,,,,) x y z w v) where
+  bipure = (,,,,,,) mempty mempty mempty mempty mempty
+  {-# INLINE bipure #-}
+  (x, y, z, w, v, f, g) <<*>> (x', y', z', w', v', a, b) = (mappend x x', 
mappend y y', mappend z z', mappend w w', mappend v v', f a, g b)
+  {-# INLINE (<<*>>) #-}
+
+#ifdef MIN_VERSION_tagged
 instance Biapplicative Tagged where
   bipure _ b = Tagged b
   {-# INLINE bipure #-}
 
   Tagged f <<*>> Tagged x = Tagged (f x)
   {-# INLINE (<<*>>) #-}
+#endif
 
 instance Biapplicative Const where
   bipure a _ = Const a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifoldable.hs 
new/bifunctors-5/src/Data/Bifoldable.hs
--- old/bifunctors-4.2.1/src/Data/Bifoldable.hs 2015-03-06 23:32:17.000000000 
+0100
+++ new/bifunctors-5/src/Data/Bifoldable.hs     2015-05-15 08:56:51.000000000 
+0200
@@ -1,8 +1,11 @@
 {-# LANGUAGE CPP #-}
+
+#ifndef MIN_VERSION_semigroups
+#define MIN_VERSION_semigroups(x,y,z) 0
+#endif
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifoldable
--- Copyright   :  (C) 2011 Edward Kmett,
+-- Copyright   :  (C) 2011-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -30,8 +33,16 @@
   ) where
 
 import Control.Applicative
+
+#if MIN_VERSION_semigroups(0,16,2)
 import Data.Semigroup
+#else
+import Data.Monoid
+#endif
+
+#ifdef MIN_VERSION_tagged
 import Data.Tagged
+#endif
 
 -- | Minimal definition either 'bifoldr' or 'bifoldMap'
 
@@ -116,9 +127,19 @@
   bifoldMap f g ~(_,_,_,a,b) = f a `mappend` g b
   {-# INLINE bifoldMap #-}
 
+instance Bifoldable ((,,,,,) x y z w) where
+  bifoldMap f g ~(_,_,_,_,a,b) = f a `mappend` g b
+  {-# INLINE bifoldMap #-}
+
+instance Bifoldable ((,,,,,,) x y z w v) where
+  bifoldMap f g ~(_,_,_,_,_,a,b) = f a `mappend` g b
+  {-# INLINE bifoldMap #-}
+
+#ifdef MIN_VERSION_tagged
 instance Bifoldable Tagged where
   bifoldMap _ g (Tagged b) = g b
   {-# INLINE bifoldMap #-}
+#endif
 
 instance Bifoldable Either where
   bifoldMap f _ (Left a) = f a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifunctor/Apply.hs 
new/bifunctors-5/src/Data/Bifunctor/Apply.hs
--- old/bifunctors-4.2.1/src/Data/Bifunctor/Apply.hs    2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bifunctor/Apply.hs        1970-01-01 
01:00:00.000000000 +0100
@@ -1,95 +0,0 @@
-{-# LANGUAGE CPP #-}
------------------------------------------------------------------------------
--- |
--- Module      :  Data.Bifunctor.Apply
--- Copyright   :  (C) 2011-2015 Edward Kmett,
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  Edward Kmett <[email protected]>
--- Stability   :  provisional
--- Portability :  portable
---
-----------------------------------------------------------------------------
-module Data.Bifunctor.Apply (
-  -- * Biappliable bifunctors
-    Biapply(..)
-  , (<<$>>)
-  , (<<..>>)
-  , bilift2
-  , bilift3
-  , module Data.Bifunctor
-  ) where
-
-import Control.Applicative
-import Data.Bifunctor
-import Data.Semigroup
-import Data.Tagged
-
-infixl 4 <<$>>, <<.>>, <<., .>>, <<..>>
-
-(<<$>>) :: (a -> b) -> a -> b
-(<<$>>) = id
-{-# INLINE (<<$>>) #-}
-
-class Bifunctor p => Biapply p where
-  (<<.>>) :: p (a -> b) (c -> d) -> p a c -> p b d
-
-  -- |
-  -- @
-  -- a '.>' b ≡ 'const' 'id' '<$>' a '<.>' b
-  -- @
-  (.>>) :: p a b -> p c d -> p c d
-  a .>> b = bimap (const id) (const id) <<$>> a <<.>> b
-  {-# INLINE (.>>) #-}
-
-  -- |
-  -- @
-  -- a '<.' b ≡ 'const' '<$>' a '<.>' b
-  -- @
-  (<<.) :: p a b -> p c d -> p a b
-  a <<. b = bimap const const <<$>> a <<.>> b
-  {-# INLINE (<<.) #-}
-
-(<<..>>) :: Biapply p => p a c -> p (a -> b) (c -> d) -> p b d
-(<<..>>) = bilift2 (flip id) (flip id)
-{-# INLINE (<<..>>) #-}
-
--- | Lift binary functions
-bilift2 :: Biapply w => (a -> b -> c) -> (d -> e -> f) -> w a d -> w b e -> w 
c f
-bilift2 f g a b = bimap f g <<$>> a <<.>> b
-{-# INLINE bilift2 #-}
-
--- | Lift ternary functions
-bilift3 :: Biapply w => (a -> b -> c -> d) -> (e -> f -> g -> h) -> w a e -> w 
b f -> w c g -> w d h
-bilift3 f g a b c = bimap f g <<$>> a <<.>> b <<.>> c
-{-# INLINE bilift3 #-}
-
-instance Biapply (,) where
-  (f, g) <<.>> (a, b) = (f a, g b)
-  {-# INLINE (<<.>>) #-}
-
-#if MIN_VERSION_semigroups(0,16,2)
-instance Biapply Arg where
-  Arg f g <<.>> Arg a b = Arg (f a) (g b)
-  {-# INLINE (<<.>>) #-}
-#endif
-
-instance Semigroup x => Biapply ((,,) x) where
-  (x, f, g) <<.>> (x', a, b) = (x <> x', f a, g b)
-  {-# INLINE (<<.>>) #-}
-
-instance (Semigroup x, Semigroup y) => Biapply ((,,,) x y) where
-  (x, y, f, g) <<.>> (x', y', a, b) = (x <> x', y <> y', f a, g b)
-  {-# INLINE (<<.>>) #-}
-
-instance (Semigroup x, Semigroup y, Semigroup z) => Biapply ((,,,,) x y z) 
where
-  (x, y, z, f, g) <<.>> (x', y', z', a, b) = (x <> x', y <> y', z <> z', f a, 
g b)
-  {-# INLINE (<<.>>) #-}
-
-instance Biapply Const where
-  Const f <<.>> Const x = Const (f x)
-  {-# INLINE (<<.>>) #-}
-
-instance Biapply Tagged where
-  Tagged f <<.>> Tagged x = Tagged (f x)
-  {-# INLINE (<<.>>) #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifunctor/Biff.hs 
new/bifunctors-5/src/Data/Bifunctor/Biff.hs
--- old/bifunctors-4.2.1/src/Data/Bifunctor/Biff.hs     2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bifunctor/Biff.hs 2015-05-15 08:56:51.000000000 
+0200
@@ -1,7 +1,6 @@
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifunctor.Biff
--- Copyright   :  (C) 2008-2013 Edward Kmett,
+-- Copyright   :  (C) 2008-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -15,16 +14,10 @@
 
 import Control.Applicative
 import Data.Biapplicative
-import Data.Bifunctor.Apply
 import Data.Bifoldable
 import Data.Bitraversable
 import Data.Foldable
-import Data.Functor.Apply
 import Data.Monoid
-import Data.Semigroup.Bifoldable
-import Data.Semigroup.Bitraversable
-import Data.Semigroup.Foldable
-import Data.Semigroup.Traversable
 import Data.Traversable
 
 -- | Compose two 'Functor's on the inside of a 'Bifunctor'.
@@ -43,10 +36,6 @@
   fmap f = Biff . second (fmap f) . runBiff
   {-# INLINE fmap #-}
 
-instance (Biapply p, Apply f, Apply g) => Biapply (Biff p f g) where
-  Biff fg <<.>> Biff xy = Biff (bimap (<.>) (<.>) fg <<.>> xy)
-  {-# INLINE (<<.>>) #-}
-
 instance (Biapplicative p, Applicative f, Applicative g) => Biapplicative 
(Biff p f g) where
   bipure a b = Biff (bipure (pure a) (pure b))
   {-# INLINE bipure #-}
@@ -69,11 +58,3 @@
 instance (Bitraversable p, Traversable f, Traversable g) => Bitraversable 
(Biff p f g) where
   bitraverse f g = fmap Biff . bitraverse (traverse f) (traverse g) . runBiff
   {-# INLINE bitraverse #-}
-
-instance (Bifoldable1 p, Foldable1 f, Foldable1 g) => Bifoldable1 (Biff p f g) 
where
-  bifoldMap1 f g = bifoldMap1 (foldMap1 f) (foldMap1 g) . runBiff
-  {-# INLINE bifoldMap1 #-}
-
-instance (Bitraversable1 p, Traversable1 f, Traversable1 g) => Bitraversable1 
(Biff p f g) where
-  bitraverse1 f g = fmap Biff . bitraverse1 (traverse1 f) (traverse1 g) . 
runBiff
-  {-# INLINE bitraverse1 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifunctor/Clown.hs 
new/bifunctors-5/src/Data/Bifunctor/Clown.hs
--- old/bifunctors-4.2.1/src/Data/Bifunctor/Clown.hs    2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bifunctor/Clown.hs        2015-05-15 
08:56:51.000000000 +0200
@@ -1,7 +1,6 @@
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifunctor.Clown
--- Copyright   :  (C) 2008-2013 Edward Kmett,
+-- Copyright   :  (C) 2008-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -17,16 +16,10 @@
 
 import Control.Applicative
 import Data.Biapplicative
-import Data.Bifunctor.Apply
 import Data.Bifoldable
 import Data.Bitraversable
 import Data.Foldable
-import Data.Functor.Apply
 import Data.Monoid
-import Data.Semigroup.Bifoldable
-import Data.Semigroup.Bitraversable
-import Data.Semigroup.Foldable
-import Data.Semigroup.Traversable
 import Data.Traversable
 
 -- | Make a 'Functor' over the first argument of a 'Bifunctor'.
@@ -52,10 +45,6 @@
   Clown mf <<*>> Clown mx = Clown (mf <*> mx)
   {-# INLINE (<<*>>) #-}
 
-instance Apply f => Biapply (Clown f) where
-  Clown fg <<.>> Clown xy = Clown (fg <.> xy)
-  {-# INLINE (<<.>>) #-}
-
 instance Foldable f => Bifoldable (Clown f) where
   bifoldMap f _ = foldMap f . runClown
   {-# INLINE bifoldMap #-}
@@ -71,11 +60,3 @@
 instance Traversable (Clown f a) where
   traverse _ = pure . Clown . runClown
   {-# INLINE traverse #-}
-
-instance Foldable1 f => Bifoldable1 (Clown f) where
-  bifoldMap1 f _ = foldMap1 f . runClown
-  {-# INLINE bifoldMap1 #-}
-
-instance Traversable1 f => Bitraversable1 (Clown f) where
-  bitraverse1 f _ = fmap Clown . traverse1 f . runClown
-  {-# INLINE bitraverse1 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifunctor/Flip.hs 
new/bifunctors-5/src/Data/Bifunctor/Flip.hs
--- old/bifunctors-4.2.1/src/Data/Bifunctor/Flip.hs     2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bifunctor/Flip.hs 2015-05-15 08:56:51.000000000 
+0200
@@ -1,7 +1,7 @@
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Bifunctor.Flip
--- Copyright   :  (C) 2008-2013 Edward Kmett,
+-- Copyright   :  (C) 2008-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -15,13 +15,10 @@
 
 import Control.Applicative
 import Data.Biapplicative
-import Data.Bifunctor.Apply
 import Data.Bifoldable
 import Data.Bitraversable
 import Data.Foldable
 import Data.Monoid
-import Data.Semigroup.Bifoldable
-import Data.Semigroup.Bitraversable
 import Data.Traversable
 
 -- | Make a 'Bifunctor' flipping the arguments of a 'Bifunctor'.
@@ -47,10 +44,6 @@
   Flip fg <<*>> Flip xy = Flip (fg <<*>> xy)
   {-# INLINE (<<*>>) #-}
 
-instance Biapply p => Biapply (Flip p) where
-  Flip fg <<.>> Flip xy = Flip (fg <<.>> xy)
-  {-# INLINE (<<.>>) #-}
-
 instance Bifoldable p => Bifoldable (Flip p) where
   bifoldMap f g = bifoldMap g f . runFlip
   {-# INLINE bifoldMap #-}
@@ -66,11 +59,3 @@
 instance Bitraversable p => Traversable (Flip p a) where
   traverse f = fmap Flip . bitraverse f pure . runFlip
   {-# INLINE traverse #-}
-
-instance Bifoldable1 p => Bifoldable1 (Flip p) where
-  bifoldMap1 f g = bifoldMap1 g f . runFlip
-  {-# INLINE bifoldMap1 #-}
-
-instance Bitraversable1 p => Bitraversable1 (Flip p) where
-  bitraverse1 f g = fmap Flip . bitraverse1 g f . runFlip
-  {-# INLINE bitraverse1 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifunctor/Join.hs 
new/bifunctors-5/src/Data/Bifunctor/Join.hs
--- old/bifunctors-4.2.1/src/Data/Bifunctor/Join.hs     2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bifunctor/Join.hs 2015-05-15 08:56:51.000000000 
+0200
@@ -1,8 +1,7 @@
 {-# LANGUAGE StandaloneDeriving, FlexibleContexts, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifunctor.Join
--- Copyright   :  (C) 2008-2013 Edward Kmett,
+-- Copyright   :  (C) 2008-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -17,14 +16,8 @@
 import Control.Applicative
 import Data.Biapplicative
 import Data.Bifoldable
-import Data.Bifunctor.Apply
 import Data.Bitraversable
 import Data.Foldable
-import Data.Functor.Bind
-import Data.Semigroup.Bifoldable
-import Data.Semigroup.Bitraversable
-import Data.Semigroup.Foldable
-import Data.Semigroup.Traversable
 import Data.Traversable
 
 -- | Make a 'Functor' over both arguments of a 'Bifunctor'.
@@ -49,14 +42,6 @@
   Join a <* Join b = Join (a <<* b)
   {-# INLINE (<*) #-}
 
-instance Biapply p => Apply (Join p) where
-  Join f <.> Join a = Join (f <<.>> a)
-  {-# INLINE (<.>) #-}
-  Join a .> Join b = Join (a .>> b)
-  {-# INLINE (.>) #-}
-  Join a <. Join b = Join (a <<. b)
-  {-# INLINE (<.) #-}
-
 instance Bifoldable p => Foldable (Join p) where
   foldMap f (Join a) = bifoldMap f f a
   {-# INLINE foldMap #-}
@@ -66,13 +51,3 @@
   {-# INLINE traverse #-}
   sequenceA (Join a) = fmap Join (bisequenceA a)
   {-# INLINE sequenceA #-}
-
-instance Bifoldable1 p => Foldable1 (Join p) where
-  foldMap1 f (Join a) = bifoldMap1 f f a
-  {-# INLINE foldMap1 #-}
-
-instance Bitraversable1 p => Traversable1 (Join p) where
-  traverse1 f (Join a) = fmap Join (bitraverse1 f f a)
-  {-# INLINE traverse1 #-}
-  sequence1 (Join a) = fmap Join (bisequence1 a)
-  {-# INLINE sequence1 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifunctor/Joker.hs 
new/bifunctors-5/src/Data/Bifunctor/Joker.hs
--- old/bifunctors-4.2.1/src/Data/Bifunctor/Joker.hs    2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bifunctor/Joker.hs        2015-05-15 
08:56:51.000000000 +0200
@@ -1,7 +1,6 @@
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifunctor.Joker
--- Copyright   :  (C) 2008-2013 Edward Kmett,
+-- Copyright   :  (C) 2008-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -17,15 +16,9 @@
 
 import Control.Applicative
 import Data.Biapplicative
-import Data.Bifunctor.Apply
 import Data.Bifoldable
 import Data.Bitraversable
 import Data.Foldable
-import Data.Functor.Apply
-import Data.Semigroup.Bifoldable
-import Data.Semigroup.Bitraversable
-import Data.Semigroup.Foldable
-import Data.Semigroup.Traversable
 import Data.Traversable
 
 -- | Make a 'Functor' over the second argument of a 'Bifunctor'.
@@ -51,10 +44,6 @@
   Joker mf <<*>> Joker mx = Joker (mf <*> mx)
   {-# INLINE (<<*>>) #-}
 
-instance Apply g => Biapply (Joker g) where
-  Joker fg <<.>> Joker xy = Joker (fg <.> xy)
-  {-# INLINE (<<.>>) #-}
-
 instance Foldable g => Bifoldable (Joker g) where
   bifoldMap _ g = foldMap g . runJoker
   {-# INLINE bifoldMap #-}
@@ -70,19 +59,3 @@
 instance Traversable g => Traversable (Joker g a) where
   traverse g = fmap Joker . traverse g . runJoker
   {-# INLINE traverse #-}
-
-instance Foldable1 g => Bifoldable1 (Joker g) where
-  bifoldMap1 _ g = foldMap1 g . runJoker
-  {-# INLINE bifoldMap1 #-}
-
-instance Foldable1 g => Foldable1 (Joker g a) where
-  foldMap1 g = foldMap1 g . runJoker
-  {-# INLINE foldMap1 #-}
-
-instance Traversable1 g => Bitraversable1 (Joker g) where
-  bitraverse1 _ g = fmap Joker . traverse1 g . runJoker
-  {-# INLINE bitraverse1 #-}
-
-instance Traversable1 g => Traversable1 (Joker g a) where
-  traverse1 g = fmap Joker . traverse1 g . runJoker
-  {-# INLINE traverse1 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifunctor/Product.hs 
new/bifunctors-5/src/Data/Bifunctor/Product.hs
--- old/bifunctors-4.2.1/src/Data/Bifunctor/Product.hs  2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bifunctor/Product.hs      2015-05-15 
08:56:51.000000000 +0200
@@ -1,7 +1,6 @@
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifunctor.Product
--- Copyright   :  (C) 2008-2013 Jesse Selover,
+-- Copyright   :  (C) 2008-2015 Jesse Selover, Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -16,13 +15,9 @@
 
 import Control.Applicative
 import Data.Biapplicative
-import Data.Functor.Apply
 import Data.Bifoldable
 import Data.Bitraversable
-import Data.Monoid hiding (Product, (<>))
-import Data.Semigroup hiding (Product)
-import Data.Semigroup.Bifoldable
-import Data.Semigroup.Bitraversable
+import Data.Monoid hiding (Product)
 
 -- | Form the product of two bifunctors
 data Product f g a b = Pair (f a b) (g a b) deriving (Eq,Ord,Show,Read)
@@ -48,11 +43,3 @@
 instance (Bitraversable f, Bitraversable g) => Bitraversable (Product f g) 
where
   bitraverse f g (Pair x y) = Pair <$> bitraverse f g x <*> bitraverse f g y
   {-# INLINE bitraverse #-}
-
-instance (Bifoldable1 f, Bifoldable1 g) => Bifoldable1 (Product f g) where
-  bifoldMap1 f g (Pair x y) = bifoldMap1 f g x <> bifoldMap1 f g y
-  {-# INLINE bifoldMap1 #-}
-
-instance (Bitraversable1 f, Bitraversable1 g) => Bitraversable1 (Product f g) 
where
-  bitraverse1 f g (Pair x y) = Pair <$> bitraverse1 f g x <.> bitraverse1 f g y
-  {-# INLINE bitraverse1 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifunctor/Tannen.hs 
new/bifunctors-5/src/Data/Bifunctor/Tannen.hs
--- old/bifunctors-4.2.1/src/Data/Bifunctor/Tannen.hs   2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bifunctor/Tannen.hs       2015-05-15 
08:56:51.000000000 +0200
@@ -1,7 +1,6 @@
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifunctor.Tannen
--- Copyright   :  (C) 2008-2013 Edward Kmett,
+-- Copyright   :  (C) 2008-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -15,16 +14,10 @@
 
 import Control.Applicative
 import Data.Biapplicative
-import Data.Bifunctor.Apply
 import Data.Bifoldable
 import Data.Bitraversable
 import Data.Foldable
-import Data.Functor.Apply
 import Data.Monoid
-import Data.Semigroup.Bifoldable
-import Data.Semigroup.Bitraversable
-import Data.Semigroup.Foldable
-import Data.Semigroup.Traversable
 import Data.Traversable
 
 -- | Compose a 'Functor' on the outside of a 'Bifunctor'.
@@ -43,10 +36,6 @@
   fmap f = Tannen . fmap (second f) . runTannen
   {-# INLINE fmap #-}
 
-instance (Apply f, Biapply p) => Biapply (Tannen f p) where
-  Tannen fg <<.>> Tannen xy = Tannen ((<<.>>) <$> fg <.> xy)
-  {-# INLINE (<<.>>) #-}
-
 instance (Applicative f, Biapplicative p) => Biapplicative (Tannen f p) where
   bipure a b = Tannen (pure (bipure a b))
   {-# INLINE bipure #-}
@@ -69,11 +58,3 @@
 instance (Traversable f, Bitraversable p) => Bitraversable (Tannen f p) where
   bitraverse f g = fmap Tannen . traverse (bitraverse f g) . runTannen
   {-# INLINE bitraverse #-}
-
-instance (Foldable1 f, Bifoldable1 p) => Bifoldable1 (Tannen f p) where
-  bifoldMap1 f g = foldMap1 (bifoldMap1 f g) . runTannen
-  {-# INLINE bifoldMap1 #-}
-
-instance (Traversable1 f, Bitraversable1 p) => Bitraversable1 (Tannen f p) 
where
-  bitraverse1 f g = fmap Tannen . traverse1 (bitraverse1 f g) . runTannen
-  {-# INLINE bitraverse1 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bifunctor/Wrapped.hs 
new/bifunctors-5/src/Data/Bifunctor/Wrapped.hs
--- old/bifunctors-4.2.1/src/Data/Bifunctor/Wrapped.hs  2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bifunctor/Wrapped.hs      2015-05-15 
08:56:51.000000000 +0200
@@ -1,7 +1,6 @@
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bifunctor
--- Copyright   :  (C) 2008-2013 Edward Kmett,
+-- Copyright   :  (C) 2008-2015 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -16,12 +15,9 @@
 import Control.Applicative
 import Data.Biapplicative
 import Data.Bifoldable
-import Data.Bifunctor.Apply
 import Data.Bitraversable
 import Data.Foldable
 import Data.Monoid
-import Data.Semigroup.Bifoldable
-import Data.Semigroup.Bitraversable
 import Data.Traversable
 
 -- | Make a 'Functor' over the second argument of a 'Bifunctor'.
@@ -40,10 +36,6 @@
   fmap f = WrapBifunctor . second f . unwrapBifunctor
   {-# INLINE fmap #-}
 
-instance Biapply p => Biapply (WrappedBifunctor p) where
-  WrapBifunctor fg <<.>> WrapBifunctor xy = WrapBifunctor (fg <<.>> xy)
-  {-# INLINE (<<.>>) #-}
-
 instance Biapplicative p => Biapplicative (WrappedBifunctor p) where
   bipure a b = WrapBifunctor (bipure a b)
   {-# INLINE bipure #-}
@@ -65,11 +57,3 @@
 instance Bitraversable p => Bitraversable (WrappedBifunctor p) where
   bitraverse f g = fmap WrapBifunctor . bitraverse f g . unwrapBifunctor
   {-# INLINE bitraverse #-}
-
-instance Bifoldable1 p => Bifoldable1 (WrappedBifunctor p) where
-  bifoldMap1 f g = bifoldMap1 f g . unwrapBifunctor
-  {-# INLINE bifoldMap1 #-}
-
-instance Bitraversable1 p => Bitraversable1 (WrappedBifunctor p) where
-  bitraverse1 f g = fmap WrapBifunctor . bitraverse1 f g . unwrapBifunctor
-  {-# INLINE bitraverse1 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Bitraversable.hs 
new/bifunctors-5/src/Data/Bitraversable.hs
--- old/bifunctors-4.2.1/src/Data/Bitraversable.hs      2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Bitraversable.hs  2015-05-15 08:56:51.000000000 
+0200
@@ -1,8 +1,11 @@
 {-# LANGUAGE CPP #-}
+
+#ifndef MIN_VERSION_semigroups
+#define MIN_VERSION_semigroups(x,y,z) 0
+#endif
 -----------------------------------------------------------------------------
 -- |
--- Module      :  Data.Bitraversable
--- Copyright   :  (C) 2011 Edward Kmett,
+-- Copyright   :  (C) 2011 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <[email protected]>
@@ -23,8 +26,16 @@
 import Control.Applicative
 import Data.Bifunctor
 import Data.Bifoldable
+
+#if MIN_VERSION_semigroups(0,16,2)
 import Data.Semigroup
+#else
+import Data.Monoid
+#endif
+
+#ifdef MIN_VERSION_tagged
 import Data.Tagged
+#endif
 
 -- | Minimal complete definition either 'bitraverse' or 'bisequenceA'.
 
@@ -172,6 +183,14 @@
   bitraverse f g ~(x, y, z, a, b) = (,,,,) x y z <$> f a <*> g b
   {-# INLINE bitraverse #-}
 
+instance Bitraversable ((,,,,,) x y z w) where
+  bitraverse f g ~(x, y, z, w, a, b) = (,,,,,) x y z w <$> f a <*> g b
+  {-# INLINE bitraverse #-}
+
+instance Bitraversable ((,,,,,,) x y z w v) where
+  bitraverse f g ~(x, y, z, w, v, a, b) = (,,,,,,) x y z w v <$> f a <*> g b
+  {-# INLINE bitraverse #-}
+
 instance Bitraversable Either where
   bitraverse f _ (Left a) = Left <$> f a
   bitraverse _ g (Right b) = Right <$> g b
@@ -181,9 +200,11 @@
   bitraverse f _ (Const a) = Const <$> f a
   {-# INLINE bitraverse #-}
 
+#ifdef MIN_VERSION_tagged
 instance Bitraversable Tagged where
   bitraverse _ g (Tagged b) = Tagged <$> g b
   {-# INLINE bitraverse #-}
+#endif
 
 -- | 'bifor' is 'bitraverse' with the structure as the first argument.
 bifor :: (Bitraversable t, Applicative f) => t a b -> (a -> f c) -> (b -> f d) 
-> f (t c d)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Semigroup/Bifoldable.hs 
new/bifunctors-5/src/Data/Semigroup/Bifoldable.hs
--- old/bifunctors-4.2.1/src/Data/Semigroup/Bifoldable.hs       2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Semigroup/Bifoldable.hs   1970-01-01 
01:00:00.000000000 +0100
@@ -1,102 +0,0 @@
-{-# LANGUAGE CPP #-}
------------------------------------------------------------------------------
--- |
--- Module      :  Data.Semigroup.Foldable
--- Copyright   :  (C) 2011-2015 Edward Kmett
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  Edward Kmett <[email protected]>
--- Stability   :  provisional
--- Portability :  portable
---
-----------------------------------------------------------------------------
-module Data.Semigroup.Bifoldable
-  ( Bifoldable1(..)
-  , bitraverse1_
-  , bifor1_
-  , bisequenceA1_
-  , bifoldMapDefault1
-  ) where
-
-import Control.Applicative
-import Data.Bifoldable
-import Data.Functor.Apply
-import Data.Semigroup
-import Data.Tagged
-import Prelude hiding (foldr)
-
-class Bifoldable t => Bifoldable1 t where
-  bifold1 :: Semigroup m => t m m -> m
-  bifold1 = bifoldMap1 id id
-  {-# INLINE bifold1 #-}
-
-  bifoldMap1 :: Semigroup m => (a -> m) -> (b -> m) -> t a b -> m
-  bifoldMap1 f g = maybe (error "bifoldMap1") id . getOption . bifoldMap 
(Option . Just . f) (Option . Just . g)
-  {-# INLINE bifoldMap1 #-}
-
-#if MIN_VERSION_semigroups(0,16,2)
-instance Bifoldable1 Arg where
-  bifoldMap1 f g (Arg a b) = f a <> g b
-#endif
-
-instance Bifoldable1 Either where
-  bifoldMap1 f _ (Left a) = f a
-  bifoldMap1 _ g (Right b) = g b
-  {-# INLINE bifoldMap1 #-}
-
-instance Bifoldable1 (,) where
-  bifoldMap1 f g (a, b) = f a <> g b
-  {-# INLINE bifoldMap1 #-}
-
-instance Bifoldable1 ((,,) x) where
-  bifoldMap1 f g (_,a,b) = f a <> g b
-  {-# INLINE bifoldMap1 #-}
-
-instance Bifoldable1 ((,,,) x y) where
-  bifoldMap1 f g (_,_,a,b) = f a <> g b
-  {-# INLINE bifoldMap1 #-}
-
-instance Bifoldable1 ((,,,,) x y z) where
-  bifoldMap1 f g (_,_,_,a,b) = f a <> g b
-  {-# INLINE bifoldMap1 #-}
-
-instance Bifoldable1 Const where
-  bifoldMap1 f _ (Const a) = f a
-  {-# INLINE bifoldMap1 #-}
-
-instance Bifoldable1 Tagged where
-  bifoldMap1 _ g (Tagged b) = g b
-  {-# INLINE bifoldMap1 #-}
-
-newtype Act f a = Act { getAct :: f a }
-
-instance Apply f => Semigroup (Act f a) where
-  Act a <> Act b = Act (a .> b)
-  {-# INLINE (<>) #-}
-
-instance Functor f => Functor (Act f) where
-  fmap f (Act a) = Act (f <$> a)
-  {-# INLINE fmap #-}
-  b <$ Act a = Act (b <$ a)
-  {-# INLINE (<$) #-}
-
-bitraverse1_ :: (Bifoldable1 t, Apply f) => (a -> f b) -> (c -> f d) -> t a c 
-> f ()
-bitraverse1_ f g t = getAct (bifoldMap1 (Act . ignore . f) (Act . ignore . g) 
t)
-{-# INLINE bitraverse1_ #-}
-
-bifor1_ :: (Bifoldable1 t, Apply f) => t a c -> (a -> f b) -> (c -> f d) -> f 
()
-bifor1_ t f g = bitraverse1_ f g t
-{-# INLINE bifor1_ #-}
-
-ignore :: Functor f => f a -> f ()
-ignore = (() <$)
-{-# INLINE ignore #-}
-
-bisequenceA1_ :: (Bifoldable1 t, Apply f) => t (f a) (f b) -> f ()
-bisequenceA1_ t = getAct (bifoldMap1 (Act . ignore) (Act . ignore) t)
-{-# INLINE bisequenceA1_ #-}
-
--- | Usable default for foldMap, but only if you define bifoldMap1 yourself
-bifoldMapDefault1 :: (Bifoldable1 t, Monoid m) => (a -> m) -> (b -> m) -> t a 
b -> m
-bifoldMapDefault1 f g = unwrapMonoid . bifoldMap (WrapMonoid . f) (WrapMonoid 
. g)
-{-# INLINE bifoldMapDefault1 #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bifunctors-4.2.1/src/Data/Semigroup/Bitraversable.hs 
new/bifunctors-5/src/Data/Semigroup/Bitraversable.hs
--- old/bifunctors-4.2.1/src/Data/Semigroup/Bitraversable.hs    2015-03-06 
23:32:17.000000000 +0100
+++ new/bifunctors-5/src/Data/Semigroup/Bitraversable.hs        1970-01-01 
01:00:00.000000000 +0100
@@ -1,75 +0,0 @@
-{-# LANGUAGE CPP #-}
------------------------------------------------------------------------------
--- |
--- Module      :  Data.Semigroup.Bitraversable
--- Copyright   :  (C) 2011-2015 Edward Kmett
--- License     :  BSD-style (see the file LICENSE)
---
--- Maintainer  :  Edward Kmett <[email protected]>
--- Stability   :  provisional
--- Portability :  portable
---
-----------------------------------------------------------------------------
-module Data.Semigroup.Bitraversable
-  ( Bitraversable1(..)
-  , bifoldMap1Default
-  ) where
-
-import Control.Applicative
-import Data.Bitraversable
-import Data.Bifunctor
-import Data.Functor.Apply
-import Data.Semigroup
-import Data.Semigroup.Bifoldable
-import Data.Tagged
-
-class (Bifoldable1 t, Bitraversable t) => Bitraversable1 t where
-  bitraverse1 :: Apply f => (a -> f b) -> (c -> f d) -> t a c -> f (t b d)
-  bitraverse1 f g  = bisequence1 . bimap f g
-  {-# INLINE bitraverse1 #-}
-
-  bisequence1 :: Apply f => t (f a) (f b) -> f (t a b)
-  bisequence1 = bitraverse1 id id
-  {-# INLINE bisequence1 #-}
-
-#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 708
-  {-# MINIMAL bitraverse1 | bisequence1 #-}
-#endif
-
-#if MIN_VERSION_semigroups(0,16,2)
-instance Bitraversable1 Arg where
-  bitraverse1 f g (Arg a b) = Arg <$> f a <.> g b
-#endif
-
-bifoldMap1Default :: (Bitraversable1 t, Semigroup m) => (a -> m) -> (b -> m) 
-> t a b -> m
-bifoldMap1Default f g = getConst . bitraverse1 (Const . f) (Const . g)
-{-# INLINE bifoldMap1Default #-}
-
-instance Bitraversable1 Either where
-  bitraverse1 f _ (Left a) = Left <$> f a
-  bitraverse1 _ g (Right b) = Right <$> g b
-  {-# INLINE bitraverse1 #-}
-
-instance Bitraversable1 (,) where
-  bitraverse1 f g (a, b) = (,) <$> f a <.> g b
-  {-# INLINE bitraverse1 #-}
-
-instance Bitraversable1 ((,,) x) where
-  bitraverse1 f g (x, a, b) = (,,) x <$> f a <.> g b
-  {-# INLINE bitraverse1 #-}
-
-instance Bitraversable1 ((,,,) x y) where
-  bitraverse1 f g (x, y, a, b) = (,,,) x y <$> f a <.> g b
-  {-# INLINE bitraverse1 #-}
-
-instance Bitraversable1 ((,,,,) x y z) where
-  bitraverse1 f g (x, y, z, a, b) = (,,,,) x y z <$> f a <.> g b
-  {-# INLINE bitraverse1 #-}
-
-instance Bitraversable1 Const where
-  bitraverse1 f _ (Const a) = Const <$> f a
-  {-# INLINE bitraverse1 #-}
-
-instance Bitraversable1 Tagged where
-  bitraverse1 _ g (Tagged b) = Tagged <$> g b
-  {-# INLINE bitraverse1 #-}


Reply via email to