packages feed

optics-extra 0.4.1 → 0.4.2

raw patch · 3 files changed

+54/−36 lines, 3 filesdep ~basedep ~mtldep ~transformersPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, mtl, transformers

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,3 +1,13 @@+# optics-extra-0.4.2 (2022-05-19)+* Allow `transformers-0.6` and `mtl-2.3`++  Note that `optics-extra` no longer defines `Zoom` instances for `ErrorT` or `ListT` when+  building with `mtl-2.3` or later. This is because `MonadState` is a superclass of+  `Zoom`, and the `MonadState` instances for `ErrorT` and `ListT` were removed in+  `mtl-2.3`. Be watchful of this if you build `optics-extra` with `mtl-2.3` (or+  later) combined with an older version of `transformers` (pre-0.6) that defines+  `ErrorT` or `ListT`.  Similarly for `Magnify` and `MagnifyMany`.+ # optics-extra-0.4.1 (2022-03-22) * Add support for GHC-9.2 
optics-extra.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name:          optics-extra-version:       0.4.1+version:       0.4.2 license:       BSD-3-Clause license-file:  LICENSE build-type:    Simple@@ -67,10 +67,10 @@                , containers             >= 0.5.10.2  && <0.7                , hashable               >= 1.1.1     && <1.5                , indexed-profunctors    >= 0.1       && <0.2-               , mtl                    >= 2.2.2     && <2.3+               , mtl                    >= 2.2.2     && <2.4                , optics-core            >= 0.4.1     && <0.4.2                , text                   >= 1.2       && <1.3 || >=2.0 && <2.1-               , transformers           >= 0.5       && <0.6+               , transformers           >= 0.5       && <0.7                , unordered-containers   >= 0.2.6     && <0.3                , vector                 >= 0.11      && <0.13                , indexed-traversable-instances >=0.1 && <0.2
src/Optics/Zoom.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-warnings-deprecations #-} module Optics.Zoom@@ -11,10 +12,8 @@  import Control.Monad.Reader (ReaderT (..), MonadReader) import Control.Monad.State (MonadState (..))-import Control.Monad.Trans.Error (Error, ErrorT (..)) import Control.Monad.Trans.Except (ExceptT (..), runExceptT) import Control.Monad.Trans.Identity (IdentityT (..))-import Control.Monad.Trans.List (ListT (..)) import Control.Monad.Trans.Maybe (MaybeT (..)) import qualified Control.Monad.Trans.RWS.Lazy as L import qualified Control.Monad.Trans.RWS.Strict as S@@ -23,6 +22,11 @@ import qualified Control.Monad.Trans.Writer.Lazy as L import qualified Control.Monad.Trans.Writer.Strict as S +#if !MIN_VERSION_transformers(0,6,0)+import Control.Monad.Trans.Error (Error, ErrorT (..))+import Control.Monad.Trans.List (ListT (..))+#endif+ import Optics.Core import Optics.Internal.Utils import Optics.Extra.Internal.Zoom@@ -158,14 +162,6 @@   {-# INLINE zoomMaybe #-}   {-# INLINE zoomMany #-} -instance Zoom m n s t => Zoom (ListT m) (ListT n) s t where-  zoom      o = ListT #.                  zoom      o .# runListT-  zoomMaybe o = ListT #. fmap sequenceA . zoomMaybe o .# runListT-  zoomMany  o = ListT #.                  zoomMany  o .# runListT-  {-# INLINE zoom #-}-  {-# INLINE zoomMaybe #-}-  {-# INLINE zoomMany #-}- instance Zoom m n s t => Zoom (MaybeT m) (MaybeT n) s t where   zoom o =     MaybeT #. zoom o .# runMaybeT@@ -177,6 +173,18 @@   {-# INLINE zoomMaybe #-}   {-# INLINE zoomMany #-} +instance Zoom m n s t => Zoom (ExceptT e m) (ExceptT e n) s t where+  zoom o =+    ExceptT #. zoom o .# runExceptT+  zoomMaybe o =+    ExceptT #. fmap (getErr . shuffleErr) . zoomMaybe o . fmap Err .# runExceptT+  zoomMany o =+    ExceptT #. fmap getErr . zoomMany o . fmap Err .# runExceptT+  {-# INLINE zoom #-}+  {-# INLINE zoomMaybe #-}+  {-# INLINE zoomMany #-}++#if !MIN_VERSION_transformers(0,6,0) && !MIN_VERSION_mtl(2,3,0) instance (Error e, Zoom m n s t) => Zoom (ErrorT e m) (ErrorT e n) s t where   zoom o =     ErrorT #. zoom o .# runErrorT@@ -188,16 +196,14 @@   {-# INLINE zoomMaybe #-}   {-# INLINE zoomMany #-} -instance Zoom m n s t => Zoom (ExceptT e m) (ExceptT e n) s t where-  zoom o =-    ExceptT #. zoom o .# runExceptT-  zoomMaybe o =-    ExceptT #. fmap (getErr . shuffleErr) . zoomMaybe o . fmap Err .# runExceptT-  zoomMany o =-    ExceptT #. fmap getErr . zoomMany o . fmap Err .# runExceptT+instance Zoom m n s t => Zoom (ListT m) (ListT n) s t where+  zoom      o = ListT #.                  zoom      o .# runListT+  zoomMaybe o = ListT #. fmap sequenceA . zoomMaybe o .# runListT+  zoomMany  o = ListT #.                  zoomMany  o .# runListT   {-# INLINE zoom #-}   {-# INLINE zoomMaybe #-}   {-# INLINE zoomMany #-}+#endif  ------------------------------------------------------------------------------ -- Magnify@@ -367,16 +373,6 @@   magnifyMany o = L.WriterT #. magnifyMany o .# L.runWriterT   {-# INLINE magnifyMany #-} -instance Magnify m n b a => Magnify (ListT m) (ListT n) b a where-  magnify      o = ListT #.                  magnify      o .# runListT-  magnifyMaybe o = ListT #. fmap sequenceA . magnifyMaybe o .# runListT-  {-# INLINE magnify #-}-  {-# INLINE magnifyMaybe #-}--instance MagnifyMany m n b a => MagnifyMany (ListT m) (ListT n) b a where-  magnifyMany o = ListT #. magnifyMany o .# runListT-  {-# INLINE magnifyMany #-}- instance Magnify m n b a => Magnify (MaybeT m) (MaybeT n) b a where   magnify o = MaybeT #. magnify o .# runMaybeT   magnifyMaybe o =@@ -388,6 +384,18 @@   magnifyMany o = MaybeT #. fmap getMay . magnifyMany o . fmap May .# runMaybeT   {-# INLINE magnifyMany #-} +instance Magnify m n b a => Magnify (ExceptT e m) (ExceptT e n) b a where+  magnify o = ExceptT #. magnify o .# runExceptT+  magnifyMaybe o =+    ExceptT #. fmap (getErr . shuffleErr) . magnifyMaybe o . fmap Err .# runExceptT+  {-# INLINE magnify #-}+  {-# INLINE magnifyMaybe #-}++instance MagnifyMany m n b a => MagnifyMany (ExceptT e m) (ExceptT e n) b a where+  magnifyMany o = ExceptT #. fmap getErr . magnifyMany o . fmap Err .# runExceptT+  {-# INLINE magnifyMany #-}++#if !MIN_VERSION_transformers(0,6,0) instance (Error e, Magnify m n b a) => Magnify (ErrorT e m) (ErrorT e n) b a where   magnify o = ErrorT #. magnify o .# runErrorT   magnifyMaybe o =@@ -401,13 +409,13 @@   magnifyMany o = ErrorT #. fmap getErr . magnifyMany o . fmap Err .# runErrorT   {-# INLINE magnifyMany #-} -instance Magnify m n b a => Magnify (ExceptT e m) (ExceptT e n) b a where-  magnify o = ExceptT #. magnify o .# runExceptT-  magnifyMaybe o =-    ExceptT #. fmap (getErr . shuffleErr) . magnifyMaybe o . fmap Err .# runExceptT+instance Magnify m n b a => Magnify (ListT m) (ListT n) b a where+  magnify      o = ListT #.                  magnify      o .# runListT+  magnifyMaybe o = ListT #. fmap sequenceA . magnifyMaybe o .# runListT   {-# INLINE magnify #-}   {-# INLINE magnifyMaybe #-} -instance MagnifyMany m n b a => MagnifyMany (ExceptT e m) (ExceptT e n) b a where-  magnifyMany o = ExceptT #. fmap getErr . magnifyMany o . fmap Err .# runExceptT+instance MagnifyMany m n b a => MagnifyMany (ListT m) (ListT n) b a where+  magnifyMany o = ListT #. magnifyMany o .# runListT   {-# INLINE magnifyMany #-}+#endif