packages feed

bifunctors 5.6 → 5.6.1

raw patch · 7 files changed

+45/−4 lines, 7 filesdep +assocdep ~containersdep ~template-haskelldep ~th-abstractionPVP ok

version bump matches the API change (PVP)

Dependencies added: assoc

Dependency ranges changed: containers, template-haskell, th-abstraction

API changes (from Hackage documentation)

+ Data.Bifunctor.Biff: instance (f GHC.Types.~ g, GHC.Base.Functor f, Data.Bifunctor.Swap.Swap p) => Data.Bifunctor.Swap.Swap (Data.Bifunctor.Biff.Biff p f g)
+ Data.Bifunctor.Flip: instance Data.Bifunctor.Assoc.Assoc p => Data.Bifunctor.Assoc.Assoc (Data.Bifunctor.Flip.Flip p)
+ Data.Bifunctor.Flip: instance Data.Bifunctor.Swap.Swap p => Data.Bifunctor.Swap.Swap (Data.Bifunctor.Flip.Flip p)
+ Data.Bifunctor.Product: instance (Data.Bifunctor.Swap.Swap p, Data.Bifunctor.Swap.Swap q) => Data.Bifunctor.Swap.Swap (Data.Bifunctor.Product.Product p q)
+ Data.Bifunctor.Sum: instance (Data.Bifunctor.Swap.Swap p, Data.Bifunctor.Swap.Swap q) => Data.Bifunctor.Swap.Swap (Data.Bifunctor.Sum.Sum p q)
+ Data.Bifunctor.Tannen: instance (GHC.Base.Functor f, Data.Bifunctor.Swap.Swap p) => Data.Bifunctor.Swap.Swap (Data.Bifunctor.Tannen.Tannen f p)

Files

CHANGELOG.markdown view
@@ -1,3 +1,11 @@+5.6.1 [2023.03.13]+------------------+* Provide instances for the `Swap` and `Assoc` type classes from the `assoc`+  package. (These instances were previously defined in `assoc` itself, but they+  have been migrated over to `bifunctors` in tandem with the `assoc-1.1`+  release.)+* Only depend on `bifunctor-classes-compat` if building with GHC 8.0.+ 5.6 [2023.03.12] ---------------- * Drop support for GHC 7.10 and earlier.
bifunctors.cabal view
@@ -1,7 +1,7 @@ cabal-version: 1.24 name:          bifunctors category:      Data, Functors-version:       5.6+version:       5.6.1 license:       BSD3 license-file:  LICENSE author:        Edward A. Kmett@@ -43,15 +43,17 @@   hs-source-dirs: src   build-depends:     base                     >= 4.9     && < 5,-    bifunctor-classes-compat >= 0.1     && < 0.2,+    assoc                    >= 1.1     && < 1.2,     comonad                  >= 5.0.7   && < 6,     containers               >= 0.5.7.1 && < 0.7,     template-haskell         >= 2.11    && < 2.21,     th-abstraction           >= 0.4.2.0 && < 0.6,     transformers             >= 0.5     && < 0.7 -  if !impl(ghc > 8.2)-    build-depends: transformers-compat >= 0.6 && < 0.8+  if !impl(ghc >= 8.2)+    build-depends:+      bifunctor-classes-compat >= 0.1 && < 0.2,+      transformers-compat      >= 0.6 && < 0.8    if flag(tagged)     build-depends: tagged >= 0.8.6 && < 1
src/Data/Bifunctor/Biff.hs view
@@ -24,6 +24,7 @@ import Data.Biapplicative import Data.Bifoldable import Data.Bifoldable1 (Bifoldable1(..))+import Data.Bifunctor.Swap (Swap (..)) import Data.Bitraversable import Data.Foldable1 (Foldable1(..)) import Data.Functor.Classes@@ -103,3 +104,7 @@ 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 #-}++-- | @since 5.6.1+instance (f ~ g, Functor f, Swap p) => Swap (Biff p f g) where+  swap = Biff . swap . runBiff
src/Data/Bifunctor/Flip.hs view
@@ -21,6 +21,8 @@ import Data.Bifoldable import Data.Bifoldable1 (Bifoldable1(..)) import Data.Bifunctor.Functor+import Data.Bifunctor.Swap (Swap (..))+import Data.Bifunctor.Assoc (Assoc (..)) import Data.Bitraversable import Data.Functor.Classes import GHC.Generics@@ -99,3 +101,12 @@  instance BifunctorFunctor Flip where   bifmap f (Flip p) = Flip (f p)++-- | @since 5.6.1+instance Assoc p => Assoc (Flip p) where+    assoc   = Flip . first Flip . unassoc . second runFlip . runFlip+    unassoc = Flip . second Flip . assoc . first runFlip . runFlip++-- | @since 5.6.1+instance Swap p => Swap (Flip p) where+    swap = Flip . swap . runFlip
src/Data/Bifunctor/Product.hs view
@@ -30,6 +30,7 @@ import Data.Bifoldable import Data.Bifoldable1 (Bifoldable1(..)) import Data.Bifunctor.Functor+import Data.Bifunctor.Swap (Swap (..)) import Data.Bitraversable import Data.Functor.Classes import qualified Data.Semigroup as S@@ -131,3 +132,7 @@  instance (A.ArrowPlus p, A.ArrowPlus q) => A.ArrowPlus (Product p q) where   Pair x y <+> Pair x' y' = Pair (x A.<+> x') (y A.<+> y')++-- | @since 5.6.1+instance (Swap p, Swap q) => Swap (Product p q) where+    swap (Pair p q) = Pair (swap p) (swap q)
src/Data/Bifunctor/Sum.hs view
@@ -13,6 +13,7 @@  import Data.Bifunctor import Data.Bifunctor.Functor+import Data.Bifunctor.Swap (Swap (..)) import Data.Bifoldable import Data.Bitraversable import Data.Functor.Classes@@ -81,3 +82,8 @@   bijoin (R2 q) = q   bibind _ (L2 p) = L2 p   bibind f (R2 q) = f q++-- | @since 5.6.1+instance (Swap p, Swap q) => Swap (Sum p q) where+  swap (L2 p) = L2 (swap p)+  swap (R2 q) = R2 (swap q)
src/Data/Bifunctor/Tannen.hs view
@@ -29,6 +29,7 @@  import Data.Bifunctor as B import Data.Bifunctor.Functor+import Data.Bifunctor.Swap (Swap (..)) import Data.Biapplicative import Data.Bifoldable import Data.Bifoldable1 (Bifoldable1(..))@@ -152,3 +153,6 @@ instance (Applicative f, ArrowPlus p) => ArrowPlus (Tannen f p) where   Tannen f <+> Tannen g = Tannen (liftA2 (<+>) f g) +-- | @since 5.6.1+instance (Functor f, Swap p) => Swap (Tannen f p) where+  swap = Tannen . fmap swap . runTannen