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 +8/−0
- bifunctors.cabal +6/−4
- src/Data/Bifunctor/Biff.hs +5/−0
- src/Data/Bifunctor/Flip.hs +11/−0
- src/Data/Bifunctor/Product.hs +5/−0
- src/Data/Bifunctor/Sum.hs +6/−0
- src/Data/Bifunctor/Tannen.hs +4/−0
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