packages feed

assoc 1.0.2 → 1.1

raw patch · 4 files changed

+50/−39 lines, 4 filesdep +bifunctor-classes-compatdep −bifunctorsdep ~basePVP ok

version bump matches the API change (PVP)

Dependencies added: bifunctor-classes-compat

Dependencies removed: bifunctors

Dependency ranges changed: base

API changes (from Hackage documentation)

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

Files

CHANGELOG.md view
@@ -1,3 +1,10 @@+## 1.1++- Depend on `bifunctor-classes-compat` only.+  Instances for types defined in `bifunctors` package are moved there.+  With this change `assoc` only depends on `base` and `tagged`.+- Mark modules as explicitly Safe+ ## 1.0.2  - Add 'Swap' instances for more n-tuples
assoc.cabal view
@@ -1,6 +1,6 @@ cabal-version:      1.12 name:               assoc-version:            1.0.2+version:            1.1 license:            BSD3 license-file:       LICENSE synopsis:           swap and assoc: Symmetric and Semigroupy Bifunctors@@ -27,21 +27,36 @@      || ==8.2.2      || ==8.4.4      || ==8.6.5-     || ==8.8.3-     || ==8.10.1+     || ==8.8.4+     || ==8.10.7+     || ==9.0.2+     || ==9.2.7+     || ==9.4.4+     || ==9.6.1   , GHCJS ==8.4  source-repository head   type:     git   location: https://github.com/phadej/assoc.git +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   default-language: Haskell2010   hs-source-dirs:   src-  build-depends:-      base        >=4.3   && <4.15-    , bifunctors  >=5.5.5 && <5.6-    , tagged      >=0.8.6 && <0.9+  build-depends:    base >=4.3 && <4.19++  if flag(tagged)+    build-depends: tagged >=0.8.6 && <0.9++  if !impl(ghc >=8.0)+    build-depends: bifunctor-classes-compat >=0.1 && <0.2    exposed-modules:     Data.Bifunctor.Assoc
src/Data/Bifunctor/Assoc.hs view
@@ -1,14 +1,20 @@+{-# LANGUAGE CPP #-}+#if __GLASGOW_HASKELL__ >=704+{-# LANGUAGE Safe #-}+#elif __GLASGOW_HASKELL__ >=702+{-# LANGUAGE Trustworthy #-}+#endif module Data.Bifunctor.Assoc (     Assoc (..),     ) where -import Control.Applicative    (Const (..))-import Data.Bifunctor         (Bifunctor (..))-import Data.Bifunctor.Flip    (Flip (..))-import Data.Bifunctor.Product (Product (..))-import Data.Bifunctor.Tannen  (Tannen (..))-import Data.Tagged            (Tagged (..))+import Control.Applicative (Const (..))+import Data.Bifunctor      (Bifunctor (..)) +#ifdef MIN_VERSION_tagged+import Data.Tagged         (Tagged (..))+#endif+ -- | "Semigroup-y" 'Bifunctor's. -- -- @@@ -41,13 +47,11 @@     assoc (Const (Const a)) = Const a     unassoc (Const a) = Const (Const a) +#ifdef MIN_VERSION_tagged instance Assoc Tagged where     assoc (Tagged a) = Tagged (Tagged a)     unassoc (Tagged (Tagged a)) = Tagged a--instance Assoc p => Assoc (Flip p) where-    assoc   = Flip . first Flip . unassoc . second runFlip . runFlip-    unassoc = Flip . second Flip . assoc . first runFlip . runFlip+#endif  -- $setup --
src/Data/Bifunctor/Swap.hs view
@@ -1,14 +1,15 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE TypeFamilies #-}+#if __GLASGOW_HASKELL__ >=704+{-# LANGUAGE Safe #-}+#elif __GLASGOW_HASKELL__ >=702+{-# LANGUAGE Trustworthy #-}+#endif module Data.Bifunctor.Swap (     Swap (..),     ) where -import Data.Bifunctor         (Bifunctor (..))-import Data.Bifunctor.Biff    (Biff (..))-import Data.Bifunctor.Flip    (Flip (..))-import Data.Bifunctor.Product (Product (..))-import Data.Bifunctor.Sum     (Sum (..))-import Data.Bifunctor.Tannen  (Tannen (..))+import Data.Bifunctor (Bifunctor (..))  import qualified Data.Tuple @@ -41,22 +42,6 @@ instance Swap Either where     swap (Left x) = Right x     swap (Right x) = Left x--instance Swap p => Swap (Flip p) where-    swap = Flip . swap . runFlip--instance (Swap p, Swap q) => Swap (Product p q) where-    swap (Pair p q) = Pair (swap p) (swap q)--instance (Swap p, Swap q) => Swap (Sum p q) where-    swap (L2 p) = L2 (swap p)-    swap (R2 q) = R2 (swap q)--instance (Functor f, Swap p) => Swap (Tannen f p) where-    swap = Tannen . fmap swap . runTannen--instance (f ~ g, Functor f, Swap p) => Swap (Biff p f g) where-    swap = Biff . swap . runBiff  instance Swap ((,,) x) where     swap (x,a,b) = (x,b,a)