packages feed

invariant 0.5.6 → 0.6

raw patch · 3 files changed

+48/−9 lines, 3 filesdep ~template-haskellPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: template-haskell

API changes (from Hackage documentation)

- Data.Functor.Invariant: instance Control.Comonad.Comonad w => Data.Functor.Invariant.Invariant2 (Control.Comonad.Cokleisli w)
- Data.Functor.Invariant: instance GHC.Base.Monad m => Data.Functor.Invariant.Invariant (Control.Arrow.Kleisli m a)
- Data.Functor.Invariant: instance GHC.Base.Monad m => Data.Functor.Invariant.Invariant2 (Control.Arrow.Kleisli m)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant (Data.Profunctor.Choice.CopastroSum p a)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant (Data.Profunctor.Choice.PastroSum p a)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant (Data.Profunctor.Closed.Environment p a)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant (Data.Profunctor.Mapping.FreeMapping p a)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant (Data.Profunctor.Strong.Copastro p a)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant (Data.Profunctor.Strong.Pastro p a)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant (Data.Profunctor.Traversing.FreeTraversing p a)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant (Data.Profunctor.Yoneda.Coyoneda p a)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant m => Data.Functor.Invariant.Invariant (Control.Arrow.Kleisli m a)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant m => Data.Functor.Invariant.Invariant2 (Control.Arrow.Kleisli m)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant w => Data.Functor.Invariant.Invariant2 (Control.Comonad.Cokleisli w)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant2 (Data.Profunctor.Strong.Copastro p)
+ Data.Functor.Invariant: instance Data.Functor.Invariant.Invariant2 (Data.Profunctor.Yoneda.Coyoneda p)

Files

CHANGELOG.md view
@@ -1,3 +1,13 @@+# 0.6 [2022.07.03]+* Loosen the `Monad` constraint in the `Invariant(2)` instances for+  `Kleisli` to an `Invariant` constraint.+* Loosen the `Comonad` constraint in the `Invariant2` instance for `Cokleisli`+  to an `Invariant` constraint.+* Add `Invariant` instances for `PastroSum`, `CopastroSum`, `Environment`,+  `FreeMapping`, `Pastro`, and `FreeTraversing` from the `profunctors` library.+* Add `Invariant(2)` instances for `Copastro` and `Coyoneda` from the+  `profunctors` library.+ # 0.5.6 [2022.05.07] * Add `InvariantProfunctor` and `InvariantArrow` newtypes that admit   implementations of `invmap` that only require `Profunctor` or `Arrow`
invariant.cabal view
@@ -1,5 +1,5 @@ name:                invariant-version:             0.5.6+version:             0.6 synopsis:            Haskell98 invariant functors description:         Haskell98 invariant functors (also known as exponential functors).                      .
src/Data/Functor/Invariant.hs view
@@ -112,7 +112,7 @@ import           Data.Bifunctor.Wrapped  -- comonad-import           Control.Comonad (Comonad(..), Cokleisli(..), liftW)+import           Control.Comonad (Cokleisli(..))  -- containers import           Data.IntMap (IntMap)@@ -247,8 +247,8 @@   => Invariant (ArrowMonad a) where   invmap f _ (ArrowMonad m) = ArrowMonad (m >>> arr f) -- | from "Control.Arrow"-instance Monad m => Invariant (Kleisli m a) where-  invmap = invmap2 id id+instance Invariant m => Invariant (Kleisli m a) where+  invmap f g (Kleisli m) = Kleisli (invmap f g . m)  -- | from "Control.Exception" instance Invariant Handler where@@ -436,6 +436,9 @@ instance Invariant2 p => Invariant (Closure p a) where   invmap = invmap2 id id -- | from the @profunctors@ package+instance Invariant (Environment p a) where+  invmap = invmap2 id id+-- | from the @profunctors@ package instance Invariant2 p => Invariant (Codensity p a) where   invmap = invmap2 id id -- | from the @profunctors@ package@@ -457,9 +460,27 @@ instance Invariant2 p => Invariant (Tambara p a) where   invmap = invmap2 id id -- | from the @profunctors@ package+instance Invariant (PastroSum p a) where+  invmap = invmap2 id id+-- | from the @profunctors@ package+instance Invariant (FreeMapping p a) where+  invmap = invmap2 id id+-- | from the @profunctors@ package+instance Invariant (FreeTraversing p a) where+  invmap = invmap2 id id+-- | from the @profunctors@ package+instance Invariant (Pastro p a) where+  invmap = invmap2 id id+-- | from the @profunctors@ package instance Invariant (Cotambara p a) where   invmap = invmapFunctor -- | from the @profunctors@ package+instance Invariant (Copastro p a) where+  invmap = invmap2 id id+-- | from the @profunctors@ package+instance Invariant (CopastroSum p a) where+  invmap = invmap2 id id+-- | from the @profunctors@ package instance Invariant (CotambaraSum p a) where   invmap = invmapFunctor -- | from the @profunctors@ package@@ -468,6 +489,9 @@ -- | from the @profunctors@ package instance Invariant (Yoneda p a) where   invmap = invmapFunctor+-- | from the @profunctors@ package+instance Invariant (Coyoneda p a) where+  invmap = invmap2 id id  -- | from the @StateVar@ package instance Invariant StateVar where@@ -702,8 +726,8 @@   invmap2 _ f' g _ (App.WrapArrow x) = App.WrapArrow $ arr g Cat.. x Cat.. arr f'  -- | from "Control.Arrow"-instance Monad m => Invariant2 (Kleisli m) where-  invmap2 _ f' g _ (Kleisli m) = Kleisli $ liftM g . m . f'+instance Invariant m => Invariant2 (Kleisli m) where+  invmap2 _ f' g g' (Kleisli m) = Kleisli $ invmap g g' . m . f'  -- | from "Data.Semigroup" instance Invariant2 Arg where@@ -739,9 +763,8 @@   invmap2 = invmap2Bifunctor  -- | from the @comonad@ package-instance Comonad w => Invariant2 (Cokleisli w) where-   invmap2 _ f' g _ (Cokleisli w) = Cokleisli $ g . w . liftW f'-+instance Invariant w => Invariant2 (Cokleisli w) where+   invmap2 f f' g _ (Cokleisli w) = Cokleisli $ g . w . invmap f' f -- | from the @contravariant@ package instance Invariant2 Op where   invmap2 f f' g g' (Op x) = Op $ invmap2 g g' f f' x@@ -810,6 +833,9 @@ instance Invariant2 (Cotambara p) where   invmap2 = invmap2Profunctor -- | from the @profunctors@ package+instance Invariant2 (Copastro p) where+  invmap2 = invmap2Profunctor+-- | from the @profunctors@ package instance Invariant2 (CopastroSum p) where   invmap2 = invmap2Profunctor -- | from the @profunctors@ package@@ -821,6 +847,9 @@     TambaraSum (invmap2 (first f) (first f') (first g) (first g') p) -- | from the @profunctors@ package instance Invariant2 (Yoneda p) where+  invmap2 = invmap2Profunctor+-- | from the @profunctors@ package+instance Invariant2 (Coyoneda p) where   invmap2 = invmap2Profunctor  -- | from the @tagged@ package